Skip to main content

Full text of "Applicando 28 (Luglio-Agosto 1986)"

See other formats


wSSSSSSsSy. 


Sped. in Abb. Postale Gr. 111/70% - Anno IV Numero 28 - Luglio/Agosto 1986 • L. 6.000 


Adesso Musica 

Nota per nota il miglior software 
per dilettanti e professionisti 

Vincere a Gin 

Il punteggio in un minuto 


Radion La grande 
lotta contro il tiranno 

Accessori Ecco il 
cronometro stampagiri 


Planetario Tutti 
i segreti delle stelle 

Giochi Prova con 
la scatola atomica 

Spese e provviste 

Il frigorifero sotto controllo 

Text file Un’utility 
per gestirli meglio 

Grafica Animazione 
con effetti sorpresa 



5 



La rivista per Apple II 
e Macintosh hi 


1 

f-- 



II 








àkarim 









Sped. in Abb. Postale Gr. 111/70% 


Il mensile con disco programmi per Apple II 



SUMMERGAME 





. 0 


Meduse 
e paesaggi 
acquatici per 
il gioco della 
sopravvivenza 
estiva 


TEST 

Ce l’hai la stoffa 
per emergere in azienda? 
Scopri quanto sai rischiare 
pur di vincere 



'TINTARELLA 

Vellutata, preziosa, 
ambrata: l'abbronzatura 
con il computer per 
la tua estate al mare 
















































Millenote. A proposito di musica, come farne a me¬ 
no in un gioco o nella presentazione di un programma? 
Ecco una routine per comporre brani lunghi fino a sei 
minuti, con numerosi effetti particolari. 


Gin. E' il gioco di moda: una scalaquaranta rivista e al¬ 
quanto complicata, resa entusiasmante. Per calcolare 
i punti, però, ci vogliono pazienza e amor di calcolo. 
Oppure un programma che... 


Grafica. La gestione delle figure a blocco riserva an¬ 
cora qualche sorpresa: l'animazione veloce senza 
scambio di pagina, per esempio. Ecco come si fa, 
quando si fa e quello che non si deve fare. 


Le rubriche: 6 -Applichi 
8-Applicosa 
38-One - Liners 
45 - Mac News 
90 -Applettere 

92 -Appiihelp 

93 - Disk Service 


Planetario, pag. 34 


sommario 


Adesso musica. In un crescendo inarrestabile, l'in¬ 
formatica musicale ha messo tutti in grado di capire e 
comporre musica. Merito anche del software, sempre 
più ricco e professionale. 


Reset. Un aiuto per chi programma in MS Basic e vuo¬ 
le risparmiare un po' di tempo: questa utility breve ma 
preziosa consente il resettaggio automatico dei menù 
dopo la correzione di un programma. 


Planetario. La notte sul video si muove come quella 
vera. Potete indicare una stella per saperne il nome, o 
cambiare due dati per vedere il cielo di un'altra città, o 
stare a guardare, o stampare... 


Adesso musica, pag. 10 


Scatola nera. Bombardate di atomi la scatola chiu¬ 
sa e studiate gli angoli di riflessione; potrete dedurre 
le posizioni degli atomi che stanno dentro la scatola. 
Un classico tra i giochi di deduzione. 


Cronometro. Un nuovo, simpatico e potente acces¬ 
sorio per la scrivania del Macintosh: un cronometro al 
sessantesimo di secondo che sa anche stampare i no¬ 
mi dei tempi parziali. 


Supershopper. D'estate più che mai, occhio al frigo¬ 
rifero! Ottimizzare acquisti e scorte è un'arte da impa¬ 
rare. Magari con l’aiuto di un geniale database che 
stampa anche la lista della spesa. 


Radìon Tyrant. Molte le guardie nascoste nella reg¬ 
gia di Radion: a voi scoprirle tutte, impostando una 
buona strategia e segnando i risultati sull'apposita gri¬ 
glia. Per Macintosh. 


Text file. Per fare qualche correzione a un listato, l'i¬ 
deale è poterlo trattare come file di testo, senza dover 
uscire dall'MS Basic per caricare il MacWrite. Con que¬ 
sta utility non è un problema. 


MacNews, pag. 45 




























QBOBBOB 



Mac// 

Un emulatore software di 
Apple//+ e Apple//e per 
Macintosh 512: basta 
inserire il dischetto Mac// in 
un Macintosh, ed eccolo 
trasformato in un Apple//. 
Con il Dos e il ProDos. 



è un programma JRD 
edito in Italia 


da Editronica Srl. 

Acquistalo subito. 


Per ricevere Mac// basta compilare 
e spedire subito questo 
tagliando a Editronica Srl, 

Corso Monforte 39, 20122 Milano. 


V/ jft // 



applicando 


DIREZIONE GENERALE E AMMINISTRAZIONE 


EdOftir®iraO©si srl 

20122 Milano - Corso Monforte 39 
Telefono (02) 702429 
Telex 350132 MACORM I 


Direttore responsabile 

Stefano Benvenuti 

Coordinamento editoriale 

Francesca Marzotto 

Responsabile programmi 

Giorgio Caironi 


Impaginazione 

elettronica 

Adelio Barcella 

Collaboratori 

Marco Gussoni 
Mario Magnani 
Guido Ricciardi 
Ivonne Rossi 
Alfonso Scoppetta 

Pubbliche relazioni 

Mauro Gandini 


Tutti i diritti di riproduzione e traduzio¬ 
ne di testi, articoli, progetti, illustra¬ 
zioni, disegni, listati di programmi, 
fotografie ecc. sono riservati a termi¬ 
ni di legge. I programmi pubblicati su 
Applicando possono essere utilizza¬ 
ti per scopi privati, scientifici e dilet¬ 
tantistici, ma ne sono vietati sfrutta¬ 
menti e utilizzazioni commerciali. I 
manoscritti, i disegni e le foto, anche 
se non pubblicati, non si restitui¬ 
scono. 

Servizio abbonamenti: Editronica 
srl, Corso Monforte 39, Milano - Con¬ 
to Corrente Postale n. 19740208 - Li¬ 
na copia L. 6.000. Arretrati L. 7.000. 
Abbonamento 10 numeri (senza do¬ 
no) L. 50.000 (estero L. 70.000). Ab¬ 
bonamento 10 numeri più le Pagine 
del Software e dell'Hardware Apple 
L. 60.000 (estero L. 80.000). Periodi¬ 
co mensile - Stampa: Poligrafico Pie¬ 
montese srl, Casale Monferrato (AL) - 
Distribuzione esclusiva per l’Italia 
A.& G. Marco spa, Via Fortezza 27, 
Milano, Tel. 02/25261, telex 350320 - 
Fotolito: Mediolanum Color Separa- 
tion, Via Marcona 3, Milano. © Co¬ 
pyright 1986 by Editronica srl - Regi¬ 
strazione Tribunale di Milano n. 24 
del 15.1.1983 - Pubbl. inf. al 70%. 



Mozart ripeteva al pianoforte, alla perfezione, qual¬ 
siasi brano ascoltato anche una volta sola: ai suoi tem - 
pi non esistevano né registratori né giradischi. Ma era 
in grado anche di trascriverlo pari pari sul pentagram - 
ma, senza neppure aver mai visto lo spartito originale. 
Pensate: nota per nota, a mano. Ebbene, anche se og - 
gi esistono musicassette e compact disc, uno dei più 
grossi problemi delle case editrici musicali è ancora 
quello della stampa degli spartiti: le note non si posso - 
no comporre né col piombo delle vecchie tipografie, 
né con la fotocomposizione. E volete sapere chi le sta 
aiutando? Il Macintosh, con la miriade dei suoi pro¬ 
grammi musicali, e la stampante Laser. 

Ma scrivere le note sullo schermo grazie al mouse e 
poi stamparle ad altissima qualità in un battibaleno 
non è tutto: il Mac sta diventando lo strumento prefe¬ 
rito di qualsiasi musicista perché offre opportunità i - 
naudite in tutta la storia della musica. Pensate se Cho - 
pin, Wagner o Verdi avessero potuto, anziché strim - 
pellare con un dito e poi faticosamente annotare, po¬ 
sare le note sul rigo e poi farsele suonare direttamente 
da un'orchestra di sedici strumenti, modificare sul vi - 
deo crome e biscrome e tornare a riascoltare il tutto 
prima di procedere... 

La rivoluzione che il computer sta introducendo nel 
mondo della musica è in realtà forse ancor più clamo - 
rosa di quella che avanza negli uffici. I non addetti ai 
lavori ne hanno percepito finora solo qualche aspetto 
superficiale: si vedono in giro più tastiere di sintetiz¬ 
zatori che sassofoni o cornette tradizionali. Ma le tra - 
sformazioni sono ben più fondamentali: oggi si pos¬ 
sono inventare nuovi suoni, disegnandone la curva; si 
possono sintetizzare suoni antichi, rivisitandone gli 
splendori; e si possono suonare intere orchestre, ma - 
gari in stereofonia, senza nessun altro strumento in 
mano oltre alla tastiera del computer. 

Di questa rivoluzione dolcissima Apple II e Madnto - 
sh sono fra i protagonisti principali. Ecco perché Ap - 
plicando dedica alla musica la copertina di questo nu - 
mero, con una guida al miglior software per profes¬ 
sionisti e dilettanti del pentagramma. 

Stefano Benvenuti 



UNIONE STAMPA 
PERIODICA ITALIANA 


5 










fichi 


Mac e gli amici 
della Versilia 

"Preparare le mille in¬ 
formazioni necessarie al 
turista, aggiornarle e 
stamparle in un opuscolo 
ben curato ed elegante è 
stato proprio un lavoro a- 
datto al Mac. Così come 
lo è stato realizzare i no¬ 
stri giornali: La Cop¬ 
piola, L'Imbarcatello e 
CiAlVe , organizzare e cu¬ 
rare la dodicesima edizio¬ 
ne del Premio satira poli¬ 
tica e redigerne il catalo¬ 
go". Bella, gioviale, lu¬ 
minosa, parla con giusto 
orgoglio dei suoi più re¬ 
centi prodotti, nati dall'in- 
tuizione di potenzialità 
che non è facile cogliere: 
"Il prodotto editoriale, so¬ 
prattutto se di dimensio¬ 
ni ridotte, è in grado più 
di ogni altro di mettere 
in risalto le possibilità di 
un computer altamente 
creativo come il Mac". 

Applicando dunque 
non è più sola: che nel 
Mac c’è una tipografia a- 
desso l’ha scoperto anche 
lei, la maliarda dallo 
sguardo azzurro mare che 
con il suo recente exploit 
editoriale ha dimostrato 
di essere geniale come uh 
direttore, colta come una 
giornalista colta, brava 
come una redattrice bra¬ 
va, instancabile come un 
caporedattore, gentile ed 
efficiente come una segre¬ 
taria di redazione... 

Ma questa lei dalle mil¬ 
le virtù chi è? 

Le ha dato il nome un 
forte del diciottesimo se¬ 
colo, attorno al quale ve¬ 
nivano accatastati un tem¬ 
po i marmi pronti per 
l’imbarco e si affollano 
oggi i turisti, richiamati 
da un mare bellissimo e 
famoso, da un paesaggio 
dolce, da una vitalità cul¬ 
turale densa di iniziative 
e sorprese. E' Forte dei 
Marmi. 

Una città, tutta intera, 
è il personaggio Macinto¬ 



sh che Applicando ha in¬ 
tervistato in questo nume¬ 
ro. Una città famosa per 
le sue attrattive turistiche 
ma non meno per le sue 
molte e fortunate iniziati¬ 
ve culturali. E, adesso, 


senso di appartenenza al¬ 
la città e un vivace deside¬ 
rio di dimostrarne le pos¬ 
sibilità". Franco Calotti, 
Emilio Tarabella, Lilio 
Tarabella e gli altri prota¬ 
gonisti della rivoluzione 


I primi 

del mensile fortemarmino "L'Imbarcatello", diretto da 
Guerrino Viti e realizzato interamente con il sistema 
Apple Edit. A destra, "La Coppiola", il foglio di una 
contrada di Forte dei Marmi. 


FESTIVAL della 
CANZONE diContra 

4 e S Aprile I486 - ore 21 


PASTICCERIA - SEMIFREDDI - GELA - * 


destinata a un nuovo suc¬ 
cesso per avere saputo in¬ 
tuire l'importanza del¬ 
l'evoluzione tecnologica 
in campo editoriale. Ma 
come si è potuto verifica- 
re questo slancio colletti¬ 
vo, quando di solito la di¬ 
sponibilità al rischio e al¬ 
l’innovazione è un feno¬ 
meno che interessa pochi 
e isolati individui? 

"Vivere a Forte dei 
Marmi non è come vive¬ 
re in un posto qualunque, 
perché è una città a misu¬ 
ra d'uomo, senza indu¬ 
strie, senza inquinamen¬ 
to, senza traffico; eppure 
al contempo è un centro 
culturale vivissimo e ri¬ 
conosciuto. Ecco perché 
si è formato negli abitan¬ 
ti, con orgoglio, un forte 


editoriale in Versilia spie¬ 
gano così questa bella fa¬ 
vola (ma non va trascura¬ 
ta l'importanza di un 
sindaco amico dell'inno¬ 
vazione e di un Apple 
Center, come quello loca¬ 
le, veramente in gam¬ 
ba...). 

E quello che non dico¬ 
no loro, basta uno sguar¬ 
do ai loro giornali per ca¬ 
pirlo. 

Vivere Forte dei Mar¬ 
mi , 50 pagine con foto¬ 
grafie a colori, è il vade¬ 
mecum del fortunato turi¬ 
sta che ha scelto di tra¬ 
scorrere qui le sue vacan¬ 
ze: tutte le informazioni 
per dormire, mangiare, gi¬ 
rare, vedere, nuotare, im¬ 
parare, giocare, vivere 
Forte dei Marmi sono sta- 



6 





























te raccontate dal Mac, in 
quattro lingue, diretta- 
mente allo stampatore, e 
il risultato è di livello de¬ 
cisamente gradevole e 
professionale. 

L'Imbarcatello è "la 
nuova fortemarmina crea¬ 
tura di carta stampata", 
come si autodefinisce nel¬ 
la lettera d’invito per la 
sua presentazione ufficia¬ 
le, avvenuta il 14 giugno 
di fronte a una fitta pla¬ 
tea di autorità, giornalisti 
e intellettuali. 

Realizzato integral¬ 
mente con il sistema Ap¬ 
ple Edit, è un mensile "o- 
ve si raccontano e si a- 
scoltano fortemarmine 
faccende di ieri, di oggi e 
di domani (con eventuali 
riferimenti a quelle degli 
altri che, più o meno di¬ 
rettamente, hanno a che 
fare con la “cosa” Forte 
dei Marmi)". 

Anche gli organizza¬ 
tori del Premio Satira Po¬ 
litica Forte dei Marmi, 
di dodecennale e illustre 
tradizione, si è avvalso 
quest'anno dell’ausilio del 
Macintosh per l'organiz¬ 
zazione e la stesura dei 
suoi bei cataloghi. 

Il premio, di respiro in- 




Qui sopra: Franco Calotti con alcune delle sue 
realizzazioni: l'opuscolo "Vivere Forte dei Marmi" 
e i due cataloghi del "Premio Satira Politica". 

A sinistra: la presentazione del mensile fortemarmino 
"L'Imbarcatello". Al microfono Emilio 
Tarabella, redattore unico; seduto all'estrema 
sinistra, in marrone, il sindaco, prof. Fidia Arata. 


temazionale, promuove 
attività durante finterò ar¬ 
co dell'anno, interessando 
di sé disegnatori, giornali¬ 
sti e intellettuali di tutto 
il mondo. Sciascia, Biagi 
e Montanelli; Forattini, 
Angese e Starno; Beni¬ 
gni, Fo e Arbore sono al¬ 
cuni dei campioni della 
satira premiati in questi 
anni. 

E poi c'è il foglio di 
contrada La Coppiola , c’è 
in preparazione una Gui¬ 
da Turistica per itinerari 
toscani, c’è il giornale O- 
roptero curato con Mac 


dal Dott. Medesani. E c'è 
infine una ricca rivista a 
colori, sul tennis, del Cir¬ 
colo Albergatori Versilie- 
si, che viene realizzata in¬ 
teramente con l'Apple II: 
in tipografia, anziché con 
le pile di manoscritti, i 
fattorini ci vanno con i 
floppy disk. 

E poi, e poi? Da una 
città così ci si può aspet¬ 
tare qualcos'altro anco¬ 
ra... 

Forse presto sentiremo 
parlare di nuove iniziati¬ 
ve, magari proprio sul¬ 
l'informatica applicata? 


7 





























ag)[ò)[fìcosa 


La griffe 
della mela 

La Apple, come molti 
sanno, na firmato con la 
mela iridata una collezio¬ 
ne di oggetti dal design o- 
riginale, utili e diverten¬ 
ti. Della Apple colle- 
ction fanno parte penne, 
portadischetti eportachia- 
vi, ma anche asciugama¬ 
ni da spiaggia, magliette, 
cravatte e maglioncini. E 
per chi è abituato a sorbi¬ 
re il caffè mentre lavora 
al mouse o alla tastiera 
non manca una tazza, na¬ 
turato ente personalizzata 
dalla griffe Apple. Come 
molti invece non sanno, 
tutti questi oggetti posso¬ 
no essere richiesti ai mi¬ 
gliori computer shop o 
direttamente alla Apple. 

L'informazione 
corre sul filo 

Con la crescente diffusio¬ 
ne degli elaboratori perso¬ 
nali tra manager e profes¬ 
sionisti è cresciuto anche 
l'utilizzo di banche dati, 
ormai accessibili a chiun¬ 
que possieda un modem. 
Proprio alle banche dati è 
dedicata una nuova pub¬ 
blicazione, realizzata dal¬ 
la Hewlett-Packard Italia¬ 
na in collaborazione con 
un gruppo di esperti del 
settore. In forma sinteti¬ 
ca e facile da leggere an¬ 
che per i non addetti ai la¬ 
vori vengono descritte le 
modalità di collegamento 


e quelle di interrogazio¬ 
ne. Le informazioni prati¬ 
che comprendono un e- 
lenco degli indirizzi delle 
più importanti e interes¬ 
santi banche dati italiane, 
europee e statunitensi e u- 
na tabella riassuntiva in 
cui le banche dati posso¬ 
no essere individuate in 
base alle rispettive specia¬ 
lizzazioni. La pubblica¬ 
zione, intitolata Banche 
dati: Vinformazione è a 
portata di mano , è gratui¬ 
ta e può essere richiesta 
direttamente alla Hewlett 
Packard Italiana, Servizi 
Documentazione, via G. 
di Vittorio 9, Cemusco 
sul Naviglio, Milano (te¬ 
lefono 02/923691). 

Un tris 
da stampa 

Le nuove stampanti Oki 
della serie 290 hanno tut¬ 
te le carte in regola per 
farsi notare nell’affollato 
panorama del settore. I 
tre modelli che compon¬ 
gono la linea (siglati ri¬ 
spettivamente MI 292, 
MI 293 e MI 294) di¬ 
spongono infatti di testi¬ 
ne a 18 aghi e sono in 
grado di offrire prestazio¬ 
ni di livello superiore. I 
primi due modelli hanno 
una velocità di stampa di 


La casa della 
mela 


A scuola di 
Cobol 

I personal computer at¬ 
tuali hanno una potenza 
di calcolo superiore a quel¬ 
la raggiunta dai più gros¬ 
si elaboratori in servizio 
negli anni 60: per questo 
motivo in questi ultimi 
anni linguaggi ormai sto¬ 
rici come Fortran o Co- 
boi sono stati rivisitati, 
per renderli utilizzabili an¬ 
che da chi lavora con un 
personal. Cobol per mi¬ 
crocomputer , un libro edi¬ 
to recentemente dal Grup¬ 
po Editoriale Jackson, 
tratta proprio di questo ar¬ 
gomento, sottolineando 
l’importanza di questo lin¬ 
guaggio nel campo gestio¬ 
nale e amministrativo. 

II testo consente uno 
studio completo della pro¬ 
grammazione in Cobol 
con l'ausilio di qualsiasi 
personal computer (pur¬ 
ché dotato di compilatore 
Cobol). Cobol per micro¬ 
computer, di R. Ashley e 
J. N. Femandez, 556 pagi¬ 
ne, costa 35 mila lire. 


Con un Apple II e un 
po’ di dimestichezza con i 
circuiti elettronici è possi¬ 
bile creare un sistema mo¬ 
dulare intelligente, desti¬ 
nato a controllare rim¬ 
pianto antifurto di casa, 
quello di illuminazione e 
quello di riscaldamento, il 
telefono. A raccontare co¬ 
me sia possibile automa¬ 
tizzare la propria abitazio¬ 
ne con un personal com¬ 
puter della mela è John 
Blankership, nel libro Ap¬ 
ple house : passando da un 
capitolo all'altro si sco¬ 
pre che la casa può accet¬ 
tare ordini impartiti a vo¬ 
ce (e rispondere): solo 
per fare qualche esempio, 
può accendere il televiso¬ 
re nel momento in cui ini¬ 
zia il programma preferi¬ 
to, sintonizzare la radio 
sui notiziari, spegnere le 
luci nei locali in cui l’illu¬ 
minazione è superflua. Ap¬ 
ple house , 204 pagine, è 
edito dalla Franco Muzzio 
& C. e costa 18 mila lire. 


200 caratteri al secondo 
in uso normale e di 100 
caratteri al secondo in let- 
ter quality. La MI 294, 
invece, mantiene i 100 
caratteri al secondo nel 
modo letter quality, ma 


è in grado di raggiungere 
i 400 nell'uso normale. 
Tra gli optional disponi¬ 
bili si segnalano l'alimen¬ 
tatore di fogli singoli 
(per l'Ml 292 e l’Ml 
293), un buffer da 32 ki- 


allibri- 


appiè house 


8 








































lobyte e un nastro a colo¬ 
ri a cartuccia. Un altro 
punto a favore di questo 
tris di stampanti, prodot¬ 
te da un impianto com¬ 
pletamente robotizzato, è 
l’affidabilità: sono in gra¬ 
do di funzionare senza 
problemi per circa 4 mila 
ore, chiedendo interventi 
di manutenzione limitati 
in media entro i 15 mi¬ 
nuti. Infine i prezzi. Il 


modello 292 costa 1,875 
milioni di lire, il 293 
2,2 milioni e il 294, con 
interfaccia seriale Ibm e 
Apple, 2,975 milioni. 
Per ulteriori informazio¬ 
ni è possibile contattare 
il distributore esclusivo 
per l’Italia delle stampan¬ 
ti Oki, la Technitron 
(l’indirizzo è Palazzo 
E/2, Milanofiori, Assa- 
go, Milano). 


Knowledge» 

Management 

ess* 

LeP ,o,pe«"' eapert 


, e cr'Ol°e' e 




Il management 
post-industriale 

Gianfranco Minati, e- 
sperto nel campo della 
computer Science e dei 
problemi della società 
post-industriale ha fatto 
il punto della situazione 
del management nell'era 
della tecnologia dei com¬ 
puter in un libro dal tito¬ 
lo insolitamente lungo 
( Knowledge, manage¬ 
ment, computer: tre di¬ 
mensioni della società 
post-industriale). In un 
linguaggio che resta sem¬ 
pre accessibile, nonostan¬ 
te la complessità dei temi 
trattati, Minati affronta i 
problemi legati al nuovo 
ruolo del manager: trasfor¬ 
mare in ricchezza la cono¬ 
scenza. Ogni capitolo, 
poi, è integrato da grafi¬ 
ci, illustrazioni, dati e 
cenni storici. Knowledge, 
management, computer: 
tre dimensioni della so¬ 
cietà post-industnale è 
edito dalle Edizioni Soiel 
International di Milano 
(pagine 245). 



Economia 
e finanza personale 
in Apple Basic 


La finanza 
personale 

Chi vuole usare in mo¬ 
do personalizzato il pro¬ 
prio Apple II, troverà in 
Economia e finanza in Ap¬ 
ple Basic una sessantina 
di brevi programmi che 
mettono immediatamente 
in grado di tenere sotto 
controllo l'economia do¬ 
mestica, il calcolo di mu¬ 
tui, indirizzari e così via. 

Per fare funzionare le 
routine proposte dal volu¬ 
me bastano poche cono¬ 
scenze di Basic: il libro, 
poi, offre la possibilità 
di riunire le varie routine 
in un unico programma, 
organizzato a menù, attra¬ 
verso il quale accedere al¬ 
le varie funzioni. L'obiet¬ 
tivo del volume è, insom¬ 
ma, aiutare il lettore a 
scoprire tutta la potenza e 
la flessibilità dell'Apple. 

Economia e finanza per¬ 
sonale in Apple Basic , di 
Stanley R. Trost (172 pa¬ 
gine), è edito dalla Fran¬ 
co Muzzio & C. Costa 18 
mila lire. 



Lotus 

all'Italiana 

La Lotus Development 
Corporation, la software 
house che ha prodotto 
Jazz, il potente sprea¬ 
dsheet per Macintosh, ha 
aperto una filiale italia¬ 
na. ”La Lotus ha deciso 
di operare direttamente 
sul mercato italiano per 
poterne meglio valutare 
le potenzialità”, dice Pe¬ 
ter McQueen Dove, scoz¬ 
zese, 29 anni, responsabi¬ 
le insieme a Giovanni 
Catalfamo della neonata 
filiale. ”Siamo infatti 
convinti che l’Italia nei 
prossimi anni si trasfor¬ 
merà in uno dei più forti 
consumatori di soft¬ 
ware”. La Lotus Develo¬ 
pment Italia ha sede a Mi¬ 
lano, in via Melzi d'Eril 
29 (tei. 02/3458657). 

A prova 
di curiosi 

Per consentire di tenere 
sempre in perfetto ordine 
i floppy disk destinati a 
lavorare con l’Apple di ca¬ 
sa, ma anche videocasset¬ 
te, fotografie e musicas¬ 
sette, la milanese Mielco 
ha messo a punto un 
contenitore, battezzato 
Posso. E' realizzato con 


un robusto materiale pla¬ 
stico ed è composto da e- 
lementi modulari che pos¬ 
sono essere assemblati a 
piacimento: ogni elemen¬ 
to, poi, può essere dotato 
di una serratura per pro¬ 
teggere i supporti magne¬ 
tici da indesiderate curio¬ 
sità. L'indirizzo della Mi¬ 
elco è: via Prampolini 4, 
Milano, tei. 02/680872. 

Quasi 32 bit 
per Apple II 

Si chiama Meta 32 ed 
è stato creato per chi vuo¬ 
le anche dall’Apple II le 
prestazioni tipiche dei 
personal a 16 o a 32 bit: 
questo emulatore, scritto 
in assembler, può essere 
richiamato sia dall'Apple¬ 
soft sia dalle routine del 
monitor e mette a dispo¬ 
sizione circa 200 istruzio¬ 
ni per gestire i 32 bit e i 
16 bit alti e bassi dell’ac¬ 
cumulatore e dei registri 
X è Y. In più ci sono i ri¬ 
chiami di subroutine e i 
ritorni da subroutine con¬ 
dizionati e la funzione lo¬ 
gica Not. Meta 32 è pro¬ 
dotto dalla Micro Proget¬ 
tazione Avanzata (l’indi¬ 
rizzo è: piazza Merolli 
44, Roma, telefono 06/ 
5235376) e costa 508 mi¬ 
la lire, Iva esclusa. 


9 
















Adesso musica. Per chi sa che studiarla e scriverla è faticosa professione, 
per chi la vive solo come piacere, per chi vuole improvvisarla 
alla tastiera... Adesso musica. Per tutti quelli che hanno un Macintosh 
o un Apple II e voglia di novità, di brio, di qualità. 


Un’orchestra 
sullo schermo 


Forse è uno dei campi in cui il per¬ 
sonal ha spalancato più porte, abbat¬ 
tuto più intralci, deriso più incredu¬ 
li, conducendo una sua proficua, sim¬ 
patica e inattesa rivoluzione cultura¬ 
le: musica per tutti, a tutti i livelli. 
Musica da tesi di laurea, musica per 
un’allegra serata, musica dagli effetti 
stravaganti, dalle toccanti dissonan¬ 
ze, dalle audaci arrampicate; musica 
per imparare, per sorridere, per com¬ 
porre. 

Agli iperbolici livelli dei profes¬ 
sionisti del pentagramma, il perso¬ 
nal aiuta a scriver musica, stampa 
gli spartiti, suggerisce nuovi effetti. 
E si interfaccia con strumenti musi¬ 
cali elettronici a generare nuovi suo¬ 
ni, nuove elaborazioni e persino nuo¬ 
vi strumenti dalle tonalità sorpren¬ 
denti. Presta poi opera docile e pre¬ 
ziosa in fase di studio, per esaminare 
i pezzi scritti da illustri e meno illu¬ 
stri musicisti, scomporli, analizzare 
e confrontare differenti brani. 

A livelli più casarecci, e sorprende 
ancora di più, fa da mentore a dilet¬ 
tanti appena appena infarinati da un 
do-re-mi, avvicina alla musica fior 
di profani e persino di stonati che fi¬ 
nora l’hanno considerata territorio e- 
sclusivo degli addetti ai lavori. 

Rivela, meravigliosamente, che il 
nostro rapporto con la musica può 
non limitarsi a un passivo click sul 
pulsante dell’autoradio, può non es¬ 
sere solo un indossar di cuffie: 
con lei si può giocare 
un ruolo attivo, inedito, 
si può da pigri fruitori di 
messaggi sonori divenire, 
con un capovolgimento inaspet¬ 


tato, autori di note. Merito, indiscus¬ 
so, dei programmi disponibili sul 
mercato, che sono molti, sono intel¬ 
ligenti e belli e consentono soprat¬ 
tutto un approccio totalmente interat¬ 
tivo. Una singola nota o un intero 
pezzo musicale visualizzati sul mo¬ 
nitor del computer vengono anche c- 
scguiti, dando la possibilità di ap¬ 
prendere molto velocemente il signi¬ 
ficato della scrittura musicale; le no¬ 
te, digitate da tastiera, rivelano subi¬ 
to il suono corrispondente. Si può 
scoprire in fretta, grazie a ottime si¬ 
mulazioni, quali differenze corrono 
tra strumento e strumento. Si può 
comporre, insomma, e capendo quan¬ 
to si fa. 

Ma perché lo si fa? Non è certo 
facile rispondere. La musica non è 
come un'automobile, che tutti sanno 
a cosa serve... La musica in realtà 
non serve proprio a nulla: per questo 
è indispensabile. 

Ouverture: nasce 
l'informatica musicale 

Scienza nuova, nuovissima, l’in¬ 
formatica musicale compare negli an¬ 
ni Sessanta, nei centri studi di alcu¬ 
ne università americane, e con l'av¬ 
vento del personal giunge a toccare 
in tempo incredibilmente breve la 
sua massima tonalità. 


L'Apple II, con la sua struttura a- 
pcrta, si qualifica subito come otti¬ 
mo strumento per l'impostazione di 
un atteggiamento professionale nel 
campo musicale: ben presto si produ¬ 
cono tastiere complete di particolari 
interfacce e software per il suo stan¬ 
dard. Le possibilità che questi ibridi 
danno al musicista sono abbastanza 
limitate, anche se, alla loro appari¬ 
zione, sembrano avere dello straordi¬ 
nario. Si tratta soprattutto di applica¬ 
zioni del tipo Controllori program¬ 
mabili, qualche volta con possibilità 
limitale di elaborazioni del suono. 

Per proseguire sulla strada del pro¬ 
fessionale, il mercato richiede però 
qualcosa di più, qualcosa che consen¬ 
ta di effettuare collegamenti tra mac¬ 
chine anche differenti: occorre uno 
standard. Nei primi mesi del 1982 
nasce così la Musical Instrument Di¬ 
gital Interface, meglio nota col no¬ 
me di MIDI, praticamente la RS232 
della musica. Per Apple esistono 
due versioni di questa interfaccia: u- 
na scheda da inserire internamente 
nel caso di Apple Ile e una scheda e- 
sterna da col legare alla porta Modem 
nel caso dell'Apple Ile o del Macin¬ 
tosh. 

Anche con l’avvento degli stan¬ 
dard, l'Apple II rimane 
sulla brec- > 



10 











eia, soprattutto perché gli slot sono 
di grande aiuto per i progettisti di in¬ 
terfacce MIDI e relativo software, 
che trovano disponibili subito tutti i 
segnali necessari. Interessante il fat¬ 
to che una volta tanto in Italia non 
siamo stati a guardare: è italiana, e 
pochi lo sanno, una delle più impor¬ 
tanti società produttrici di hardware 
e software per Apple II, la Lemi di 
Torino, impostasi da diversi anni co¬ 
me produttore mondiale di interfacce 
MIDI per Apple II complete di so¬ 
ftware per le più svariate applicazio¬ 
ni e per il funzionamento con tastie¬ 
re di diverse marche, tra le più cono¬ 
sciute del mercato. Naturalmente tut¬ 
ti i programmi della Lemi, per la lo¬ 
ro esportabilità, sono in lingua in¬ 
glese; proprio per questo molti ne i- 
gnorano la nazionalità italiana. 

Apple II: 

crescendo, con brio 

Fatte così le lodi della produzione 
nostrana, non si può scordare però 
che esiste, come è naturale, anche u- 
na vastissima produzione anglosasso¬ 
ne, sia di software sia di hardware, 
che rende ancora più appetibile 


MIDI: uno standard per suonare 

Musical Instrument Digital Interface: questo il significato della sigla più 
utilizzata nell'ambiente informatico musicale. Dopo alcuni anni di anarchia 
pressoché completa, alla metà del 1981 qualcuno pensò che era ora di met¬ 
tere un po' di ordine nel bailamme di segnali digitali che viaggiavano dai 
computer alle varie tastiere. Già a marzo dell'anno successivo l'accordo tra 
i produttori era operante, ma solo dopo un altro anno la Sequential Circuits 
inaugurava il mercato MIDI con il Prophet 600, prima macchina con inter¬ 
faccia MIDI incorporata. 

Vediamo brevemente come funziona un’interfaccia MIDI. Il connettore 
standard utilizzato è il normale Din a 5 poli. Una qualsiasi apparecchiatura 
dotata di tale interfaccia possiede normalmente tre di questi connettori 
(molto raramente si trovano tastiere che ne hanno solo due): MIDI IN, MI¬ 
DI OUT, MIDI THRU. MIDI IN è un'entrata che consente di ricevere le infor¬ 
mazioni in arrivo dal computer o da altri strumenti musicali. MIDI OUT ha 
invece la funzione di inviare queste informazioni. All'uscita MIDI THRU ri¬ 
troviamo esattamente lo stesso segnale che entra da MIDI IN: serve per col¬ 
legare più apparecchiature insieme, ovvero un computer a più tastiere; que¬ 
sta funzione è quella mancante negli strumenti a soli due connettori, men¬ 
tre alcuni strumenti ne hanno addirittura tre o quattro per facilitare i collega- 
menti. I dati che viaggiano attraverso le Interfacce MIDI possono essere di 
quattro formati: Poly, Mono, Omni On e Omni Off. Mono e Poly consento¬ 
no di lavorare in monofonia (per esempio con un solo tipo di suono per o- 
gni canale) o in polifonia. Omni On e Off consentono allo strumento di ri¬ 
conoscere rispettivamente tutti i segnali che transitano o solo quelli desti¬ 
nati al canale di ricezione attivato in quel momento. 

Le informazioni che viaggiano attraverso le interfacce MIDI sono tra le 
più complesse di tutti i sistemi di trasmissione dati: informazioni relative 
ai tipi di strumenti da selezionare attraverso i differenti canali, note per o- 
gni canale, controllo dei toni, degli effetti speciali (per esempio il vibra¬ 
to) e dei pedali di espressione nei pianoforti elettronici, oltre logicamente 
a segnali di sincronismo che permettono agli strumenti di suonare all’uni¬ 
sono. Ma, caratteristica praticamente assente in altri tipi di interfacce digi¬ 
tali, è la possibilità per gli strumenti di riconoscere solo il loro standard 
di segnali, ignorando quelli differenti. Così ogni costruttore si è creato dei 
messaggi esclusivi che vengono interpretati dalle sue macchine e non com¬ 
portano alcuna reazione inaspettata dalle altre. 

Tra le cose curiose dell’interfacciamento MIDI è da segnalare la trasmis¬ 
sione via radio dei dati: la Lemi di Torino produce un trasmettitore portati¬ 
le e un ricevitore fisso che consentono di trasmettere via etere qualsiasi se¬ 
gnale MIDI fino a una distanza di 100 metri. Così il musicista può tranquil¬ 
lamente portare il suo strumento in scena e nascondere il computer che gli 
consente di generare virtuosismi da manuale. 









Canali MIDI 
simultanei 

Tracce 


Prodotto 


Computer Interfaccia 


Capacità 

note 


Metronon 


simultanee 


Modi di Codici di 
Input sincronismo 


udibile 

visibili 


Texture 

e 

R 

8 

8P 

9000 

R,Lp 

F,M, R 

V 


Mix Master 

e 

PP,R 

N/A 

26 

N/A 

R, st. Lp 

F.M 

yl 


DS3 

+/e 

Greengate 

16 

4Mo 

N/A 

R, st, Lp 

F.M, R 

V 

yl 

Future Shock & Song 

+/e 

Lemi 

16 

8P 

4100 

R.Lp 

24 

V 

yl 

Meta T rack 

+/e 

M. PP, Sn 

16 

16P 

3000 

R.Lp 

O 

V 

yl 

Key board Controll ed 

e 

MD, Mg, PP, Sq 

16 

35P 

4500 

R. st, Lp 

M.p 

V 

yl 

KSQ800 

+/e 

PP 

16 

4P 

6000 

R.Lp 

M 

V 

yl 

MIDI Sequencer II 

+/e 

MD, PP/MD, PP, Sq 

16 

16P 

4250 

R, st 

M, 96 

>/ 


MIDI 4 Plus 

+/e 

R/PP 

4 

4P 

6000 

R.Lp 

M, R, 0 

yl 

yl 

Master Tracks 

+/e/c 

PP 

16 

8P 

12000 

R, st, Lp 

M,° 

V 

yl 

MUSE 

+/e/c 

R 

16 

8P 

6000 

R 

F,M 

V 


Studio 1,2 

+/e/c 

MD, PP, Sn,Sq 

16 

8P 

5000 

R, st, Lp 

M, R 

V 

yl 

MIDIComposer 

Mac 

As 

16 

4P 

10000 

R 


yl 


Studio Mac 

Mac 

As, MW, Op, SW 

4 

8Mo 

2300 

Rlim.st 


V 


Rhythm Sequencer 

Mac 

SW 

N/A 

128 

50000 

R. st.Lp 

F.M.S 

V 


Deluxe Music 

Mac 

As, MW, Op,o 

8 

16P 

N/A 

st 




Concertware+ for MIDI 

Mac 

As, PP 

8 

8P 

10000 

st 

M, o 



Musicworks 

Mac 

As, MN, Op 

4 

4P 

1024 

Rlim.st 




Performer 

Mac 

As, MW, Op, SW 

16 

200P 

50000 

R, st 

M 

yj 

yl 

MegaTrack 

Mac 

As, MW, Op 

16 

32P 

N/A 

R, st 

M 

yl . 


Midimac Sequencer 

Mac 

As,MN,MW,Op,SW 

16 

32P 

24000 

R 

M 

V 

V 

Total Music 

Mac 

SW 

16 

128P 

60000 

R. st, Lp 

M 

yl 



l’utilizzo musicale dell’Apple II.. 

Tanto ampio è il mercato, che non 
tutti i pacchetti possono essere 
raccontati: ecco pertanto una rasse¬ 
gna dei più importanti; le caratteristi¬ 
che degli altri trovano posto invece 
nella tavola comparativa di fianco. 

• AMP 83. E’ un sequenziatore a 
tempo reale e non, prodotto dalla 
Lemi. AMP 83 è un programma tra 
i più completi, essendo composto da 
14 piste monofoniche indipendenti 
che possono agire contemporanea¬ 
mente in ascolto e in registrazione, 
più due piste che provvedono in o- 
gni momento al cambio del program¬ 
ma e alla trasposizione. AMP 83 
consente inoltre il completo control¬ 
lo delle singole note, sia come into¬ 
nazione, sia come durata e dinamica. 
Ha una possibilità di stampa, ma so¬ 
lo in notazione numerica, e consente 
di montare le diverse sequenze per la 
costruzione di una composizione 
completa che può essere poi memo¬ 
rizzata su disco. Insieme a AMP 83 
vengono forniti un programma di e- 
co digitale, che ritarda i segnali MI¬ 
DI OUT rispetto al IN, e utility so¬ 
ftware come programmi di Dump. 

• Future Shock & Song. E' 
forse il più famoso software tra i 
musicisti italiani, anche perché pro¬ 
dotto dalla Lemi di Torino. E' un se¬ 
quenziatore a tempo reale con 8 cana¬ 
li polifonici, ma ha la possibilità di 
sovrapposizione che rende il nume¬ 
ro dei canali infinito. Ogni canale 
viene identificato con il suo stato, la 
memoria consumata e il canale MI¬ 
DI corrispondente in uscita. Inoltre 
possono essere indicati, per ogni 
traccia, il tipo e la quantità delle mi¬ 
sure. La quantizzazione è molto pre¬ 
cisa e indipendente per ogni canale. 
Oltre al sincronismo esterno, il pro¬ 
gramma ha la possibilità di generare 
un metronomo con indicazione sia 
visiva sia acustica. Tutte la informa¬ 
zioni MIDI e le note (fino a 4700, 



con memoria di 64K) vengono me¬ 
morizzate fedelmente. 

• Prophet 600 e Prophet 5. 
Due software, sempre della Lemi, 
che permettono di visualizzare tutti i 
100 programmi memorizzati dalla ta¬ 
stiera Prophet 600. Quattro pagine 
di cui tre grafiche consentono di vi¬ 
sualizzare tutti i parametri con valo¬ 
ri da uno a cento per i potenzimetri 
e lo stato degli interruttori. Il Pro¬ 
phet 5 è simile al 600, ma consente 
la visualizzazione dei programmi in 
forma sia alfanumerica sia grafica e 
possiede inoltre il dump dei program¬ 
mi presenti nel primo banco del 
Prophet 5. 

• Yamaha DX7. E’ sempre fir¬ 
mato dalla Lemi, che lo propone ai 
possessori delfomonima, famosissi¬ 
ma tastiera. Tutte le funzioni vengo¬ 
no controllate dal computer e sono 
completamente editabili. Parametri, 
function page, inviluppi, algoritmi 
e LFO sono visualizzati sia numeri¬ 
camente sia graficamente. Program¬ 
mi e loro parametri sono disponibili 
per la stampa, dando così la possibi¬ 
lità di creare un archivio di suoni. Il 
dischetto è completo di 128 suoni 
oltre alle ROM originali. 

• Song. Espansione del sequencer 
Live Future Shock, ne amplia le 


possibilità riducendo contemporanea¬ 
mente lo spazio di memoria utilizza¬ 
ta. La visualizzazione di 30 battute 
per volta con scorrimento laterale fa¬ 
cilita le operazioni di editing e com¬ 
posizione. Molto facile da utilizzare, 
la rapidità di esecuzione ne fa il sup¬ 
porto ideale per concerti dal vivo. 

• Ensoniq Mirage. Lo scopo di 
questo programma della Lemi è la vi¬ 
sualizzazione delle forme d'onda cam- 
pionate sulla tastiera Mirage. Le for¬ 
me d’onda possono essere editate at¬ 
traverso il joystick allo scopo di 
creare nuovi e originali suoni e di fa¬ 
cilitare il looping. 

• Music Printer. Questo pro¬ 
gramma trasforma le tracce registrate 
sul sequencer Future Shock in file u- 
tilizzabili da software tipo Polywri- 
ter o Lead Sheet della Passport Desi¬ 
gn. E' possibile così per il musici¬ 
sta comporre il proprio pezzo ed ela¬ 
borarlo attraverso la tastiera e il com¬ 
puter e poi stampare il tutto nella to¬ 
nalità desiderata con la classica nota¬ 
zione musicale. Chiaramente questo 
software è di supporto al Live Futu¬ 
re Shock e al programma di scrittura 
che necessita una stampante grafica. 

• Roland DG. Produttrice a li¬ 
vello mondiale di sofisticate tastiere, 
la Roland ha reso ancora più potenti 


12 































































Display 


rcucuiieui iviil/i 

registrabili e modificabili 



Parametri MIDI filtrati 


Posizionatore 


Legenda - Al: alfanumeri¬ 
co. As: Assimilation. AT: 
after touch, av: avanti 
veloce. B: entrambe note- 
on e note-off. c: Apple Ile. 
CH: canali. D: durata, e: 


frequenza 

AT 

PB 

PC 

V 

MOD SUS CH 

AT 

PB 

PC 

V 

MOD SUS 

iv 

av 

PP 

pa 


8-250 

Al 

4* 

V* 

4* 

V* 

4 

4 

4 * 

1 

1 

1 

1 

1 

1 






15-4000 

N, G, Al 

4 

4 

4 

V* 

4 

4 

4 

E 

E 

E 

E 

E 

E 

4 

4 

4 

10 


4-7000 

G, Al 

, V* 


V* 

4* 

V* 

V* 

V* 









4 


Apple Ile.E: modo Edit. G: 
grafico, g: globale. 1: mo- 
do Input, iv: indietro vel- 


40-250 

G, Al 

4 

4 

4 * 

4 

4 

4 

V* 

1 

1 



1 




4 



20-300 

Al 




V* 







1 




V 



oce. lim: limitato. Lp: in 
loop. M: MIDI clock, m: Mi- 
metics. MD: Music Data, 
md: display principale. 
Mo: monofonico. MOD: 


39-1000 

Al 

4* 

V* 

4* 

V* 

V* 

V* 

V 

1+ 

1+ 

1+ 

1+ 

1+ 

1+ 






60-200 

Al 

4 

4 

V 

V 

4 

4 


I.E 






4 

4 




30-220 

Glim.AI 

4 

4 

4 

V* 

4 

4 


1 



E 





lim 


modulation wheel. MW: 
Music Works. N:anotazio- 
ne. N/A: informazione 
non disponibile. O: solo 
note-on. o: altri. Op: Opco- 
de. P: polifonico, pa: posi- 
zione attacchi. PB: pitch 
bender. PC: cambio prò- 


60-200 

Al 

4 

4 

4 

4 

4 

4 

4 

1 






4 

4 




60-200 

G, Al 

V* 

4* 

V* 

4 * 

4' 

V* 

4 * 

I.E 






4 

4 

4 

10+ 


20-250 

Al 

4 

4 

4 

4 

4 

4 

4 

I.E 


I.E 


I.E 




4 

1 


40-240 

Al 

4 

V* 

V* 

V* 

4 * 

V* 

V* 

I.E 

E 

I.E 

I.E 

I.E 

I.E 

4 

4 

4 

1 


50-250 

G 

4 

4 

4 

4 

4 









4 

4 



gramma. PP: Passport. 
pp: posizione pezzi. R: 
Roland. Sn: Syntech. Sq: 
Sequential. st: entrata a 
step. SUS: sustain. t: dalla 


N/A 

G, Al 














4 

4 

4 

1 


30-275 

N,G, Al 



4 

4 



V* 



I.E 

I.E 



4 

4 

4 

10 



N 



V* 

4' 



4 * 







4 

4 



traccia. V: volume. 4: fun- 
zione esistente. *: modifi- 
cabile indipendentemen- 



N 

4* 



N,G 














4 

4 

4 


te. @: non coerente. °: 
smart. «:canale indirizzabi- 


20-400 



V* 

V* 

4 * 

V* 

V* 


I.E 

I.E 

I.E 

I.E 

I.E 

I.E 

4 

4 

4 

lim 

le. +: agganciato (nella 
colonna Computer indica 
Apple II Europlus). 


30-300 

G, Al 

V* 

V* 

4* 

4* 

V 

V* 

V* 

I.E 

E 

E 

E 

E 

E 

4 

4 

4 

1 


1-500 


v 

4 

y) 

V 

yj 

V 


1 

1 

1 


1+ 

l + 

4 

4 

4 

1 




















30-279 

N.G.AI 

V* 

V* 

V* 

V* 

V* 

4* 

4 * 

I.E 

E 

E 


E+ 

E+ 



4 




i propri strumenti affiancando loro 
un Apple IL questo ha portato alla 
creazione di un software specifico, 
DG MIDI Music Recorder. Le carat¬ 
teristiche essenziali di questo pro¬ 
gramma (che utilizza una apposita 
scheda e funità MIDI MPU-401 
sempre della Roland) sono le seguen¬ 
ti: possibilità di registrare oltre 8 
tracce polifoniche con cambio veloci¬ 
tà, tocco, pitch, canali; riproduzione 
dei pezzi anche attraverso tastiere e 
generatori di ritmi compatibili, con 
possibilità di suonare in sovrapposi¬ 
zione direttamente dal vivo; catene fi¬ 
no a sedici strumenti, con assegna¬ 
zione di differenti tracce a ognuno 
per varie combinazioni durante la ri- 
produzione; correzione automatica di 
ogni discrepanza nel timing del pez¬ 
zo; sincronizzazione dellariproduzio- 
ne con qualsiasi registratore a nastro 
o altri strumenti; memorizzazione 
dei dati su disco per riutilizzi futuri. 

Macintosh: 
forte, fortissimo 

Il 24 febbraio 1984 a San Fran¬ 
cisco, durante la sua presentazione 
ufficiale, Macintosh fece ciò che nes¬ 
sun computer aveva mai fatto: si pre¬ 
sentò parlando con la sua stessa 


voce, promettendo così future realiz¬ 
zazioni di altissimo livello creativo. 
In due anni le conferme sono state 
molte, e i programmi musicali visti 
da Applicando sono tra queste. 

• Apple Tones e Mozart. 
Questi due programmi sono stati rea¬ 
lizzati da John R. Meier, studente al 
Dartmont College di Hannover 
(New Hampshire, USA). Apple To¬ 
nes è un programma musicale, ma 
molto atipico: genera solo suoni di 
varie tonalità, in crescendo o in ca¬ 
lando, con delle forme d’onda control¬ 
late o casuali; è più che altro un otti¬ 
mo ausilio per capire i fondamenti fi¬ 
sici del suono. Mozart invece è un 
vero e proprio software per generare 
musica con tanto di spartito, note ed 
esecuzione del pezzo trascritto. 

• Concertware. E’ stato uno 
dei primi software musicali per Ma¬ 
cintosh a entrare in commercio. La 
versione iniziale è stata migliorata a 
passi successivi fino ad arrivare alla 
attuale, Concertware Plus for MIDI, 
che consente l’interfacciamento con 
MIDI e attraverso questo con tastie¬ 
re, campionatori, ecc. Il programma 
comprende tre sezioni separate e di¬ 
stinte: la prima consente di creare 
gli strumenti musicali agendo sulla 
forma d’onda del suono generato e di 


tutte le sue caratteristiche come attac¬ 
co, decadimento, vibrato, eco, ecce¬ 
tera; la seconda è lo spartito vero e 
proprio con note, pause, tempi, ecce¬ 
tera; dulcis in fundo, la parte in gra¬ 
do di eseguire il pezzo direttamente 
o attraverso il MIDI. Contiene già u- 
na libreria di pezzi pronti e un'altra 
con i necessari strumenti. 

• Deluxe Music Constru- 
ction Set. Prodotto dalla Electro¬ 
nic Arts, è in grado di produrre suo¬ 
ni attraverso i quattro sintetizzatori 
del Macintosh e inviarli su quattro 
canali attraverso l'interfaccia MIDI 
compatibile (non possiede infatti in¬ 
terfaccia propria). I controlli sono i 
principali richiesti per una buona e- 
secuzione con 16 strumenti a dispo¬ 
sizione. Pur non essendo di livello 
massimo, ha il grosso vantaggio di 
costare poco (circa 50$). 

• Jam Séssion. La versione che 
che ci è pervenuta non sembra essere 
completa e definitiva: è in grado di 
riprodurre solo alcuni pezzi già regi¬ 
strati sul dischetto; questi vengono e- 
seguiti con eccezionale fedeltà sono¬ 
ra, ma poi tutto finisce lì, poiché 
non è possibile creare o modificare i 
brani. Con impressionante realismo 
questo programma riproduce un regi¬ 
stratore a cassetta a sei canali com- 


13 










































Funzioni di editing 








Punch 



Merge 

1 L 



TranQnniA 

Time Sig. 

Ruhatn l 


Prodotto 

In 

Out 

Mute Solo 

oop 

Quantize 

Shift 

Tempo 

1 

1 

Edit 

buffer 

Produttore 


Texture 

V 

V 

V 


yj 

yl 

@ 

s 

t.s 

yl 

V 

V 

lim 

Cherry Line 



Mix Master 

a 

a 0 

V 

V 

yj 

yl 

<a>.B.D 

t.Q.S 

t.Q.S 

yl 

yl 

V 

yl 

CTM 



DS3 

V 

yjo 

V 

V 

yl 


<3>.B.D 

Q.S 

t.Q 

V 


yl 

V 

Greengate 



Future Shock & Song 

a 

a° 

V 

V 

yl 

yl 

@ 

t.Q.S 

t.Q.S 

yj 


V 

yl 

LEMI 



MetaTrack 

V 

V° 

V 


yj 

yl 

B 

t.Q.S 

t.g,s 

V 


yl 


Mimetics 



Keyboard Controlled 

V 

V° 

V 

V 

yl 

yl 

@.D 

t.Q.S 

t,g.s 

V 

yl 

yl 

yl 

Dr.T’s 



KSQ800 

V 

yl 

yl 


yl 


B 

Q 

Q 

yl 


yl 


Korg/Unicord 



MIDI Sequencer II 

V 

V 

> 1 

V 

yl 


B 

t.Q.S 

t.s 

yl 


yl 


Music Data 



MIDI 4 Plus 

V 

V 


V 

yl 


B 

9 

Q 

yj 




Passport 



Master Tracks 

a 

a 0 

V 

V 

yj 

V 

@ 

t.g.s 

t.g 

yl 

yl 

V 

yj 

Passport 



MUSE 

a 

a 


V 


V 

@ 

t.Q.S 

t,g,s 

yl 


V 


Roland 



Studio 1,2 

a 

a 

yj 

yj 

V 

V 

B 

g.s 

t,g,s 

yl 

yl 

V 

lim 

Syntech 



MIDI Composer 



V 

yl 










Assimilation 



Studio Mac 

V 

V° 

yj 

yj 

yl 

V 

lim 



V 

V 

V 


Creative Solutions 



Rhythm Sequencer 

a 

a 0 

V 

yl 

yl 

V 

@,B,D 

t.g.s 


yl 

V 

V 

V 

CTM 



Deluxe Music 

V 

V 0 

yj 





g.s 

t.g.s 

y] 

lim 

>/ 

lim 

Electronics Arts 



Concertware+ for MIDI 

V 

V 


yl 


lim 

B 


t.g.s 

yl 


V 

yl 

Great Wave 



Musicworks 

V 

V 0 

V 

V 


lim 


t.g 

t.g.s 

yl 



yl 

Macromind 



Performer 

a 

a 0 

V 

V 

yl 

V 

0,@,B 


t.g.s 

yl 



yl 

Mark of thè Unicom 



MegaTrack 

V 


V 

yl 

V 

V 

@,D 

t.g.s 

t 

yl 

yj 

N/A yl 

Music Works 



Midimac Sequencer 

a 

a 0 

V 


yj 


@,B 

t.g 

t.g 

yl 

yl 

yl 

yl 

Opcode 



Total Music 

a 

a 0 

V 

yj 

V 

V 

@.B.D 

t.g.s 

t.g.s 

yl 

yl 

yl 

lim 

Southworth 


















pleto di VU Meter per indicare il li¬ 
vello sonoro dei vari strumenti, tasti 
di Play, Rewind, Fast Foward, Stop 
e Eject, contagiri con memoria e ta¬ 
sto search per ricercare i brani. E' do¬ 
tato inoltre di controllo del volume 
e del tempo di esecuzione; è anche 
possibile ascoltare uno solo per vol¬ 
ta gli strumenti impegnati nell’esecu¬ 
zione del brano. E’ un prodotto del¬ 
la Hayden Software. 

• Mac Attach. E’ un software 
specifico per l’utilizzo del Mac con 
la tastiera Kurzwail 250. In questo 
caso il Macintosh fa da supporto al¬ 
la memoria già presente nella tastie¬ 


ra permettendo la registrazione su di¬ 
schetto di qualsiasi tipo di dati gesti¬ 
bili dal Kurzwail 250, che vengono 
organizzati in librerie (di strumenti, 
di tastiere, di sequenze). Il marchio 
Kurzwail è distribuito da Sincro Sy¬ 
stem, Milano, e Syncrom, Roma. 

• MacMusic. La struttura princi¬ 
pale di questo programma ricorda 
Concertware, in quanto anche qui è a 
disposizione il generatore di strumen¬ 
ti, il sistema di scrittura del brano e 
l'esecutore. Dopo un attento esame 
ci si accorge che il programma ha u- 
na sua particolare filosofia di lavoro: 
per esempio gli strumenti possono 


essere generati sovrapponendo diver¬ 
se volte le tre funzioni base, sinusoi¬ 
de, quadra, triangolare. Così pure il 
sistema di scrittura dei brani consen¬ 
te concatenamenti di pezzi ricorsivi 
dando la possibilità di creare pezzi di 
eccezionale lunghezza, ma impegnan¬ 
do pochissima memoria. E' un pro¬ 
dotto Utopian Software. 

• Midi Composer. Questo pro¬ 
dotto della Assimilation può essere 
utilizzato esclusivamente con l’inter¬ 
faccia MIDI prodotta dalla Assimila¬ 
tion stessa, che consente la canalizza¬ 
zione a 16 linee e 4 tracce. Richiede 
almeno 128 K liberi di memoria sul 


* File LUeueForm Enuelope librato Icon Transfer 



Concertware 6 


é File Edlt LUIndow Play Notes Groups Meosures Sounds 



Delux music 


14 






































































































































computer ed è in grado di memorizza¬ 
re fino a 10.000 note. 

• MidiMac. Più che un softwa¬ 
re, è una linea di prodotti che vanno 
dall’interfaccia MIDI ai programmi. 
I programmi principali sono due: un 
classico sequenziatore e un Patch E- 
ditor. Il sequencer esiste in differenti 
versioni (dalla 1.05 alla 3) che varia¬ 
no per prestazioni, soprattutto nella 
possibilità di trasferimento di file da 
altri programmi (soprattutto il De¬ 
lux Construction Set), nella grafica 
e nella gestione dei sincronismi. Le 
possibilità di questo programma so¬ 
no piuttosto succulente per il musi¬ 
cista: 26 sequenze di 16 tracce ciascu¬ 
na per un totale di oltre 24.000 no¬ 
te con il limite di esecuzione con¬ 
temporanea di 32 tracce o di 16 se¬ 
quenze. Per i possessori di sintetizza¬ 
tori Yamaha esiste poi il Patch Edi¬ 
tor che consente un notevole snelli¬ 
mento delle procedure necessarie alla 
programmazione dei timbri di queste 
tastiere. Questi prodotti sono della 
Opcode e in Italia sono distribuiti da 
Sincro System di Milano e 
Syncrom di Roma. 

• Midi Works. Anche in questo 
caso ci troviamo di fronte a una se¬ 
rie di software integrati prodotti Mu- 
sicworks (nulla a che vedere con il 
programma omonimo) e importati 
da Sincro System di Milano e 
Syncrom di Roma. Il programma 
principale ha lo stesso nome dell'in¬ 
tegrato, Midi Works, ed espleta le 
sue funzioni nel trasferimento di file 
dati tra i programmi più conosciuti: 
in entrata si possono avere praticam- 
nete file di qualsiasi tipo mentre in 
uscita sono selezionabili file Mega- 
track (l’altro programma di questo in¬ 
tegrato), Musicworks, Concertware 
o Professional Composer. Il softwa¬ 
re può essere accompagnato da Mac 


MIDI, la vera e propria interfaccia 
che in unione all’altro programma 
MegaTrack consente la realizzazione 
di registrazioni multitraccia là dove 
è solo la memoria disponibile che 
crea una limitazione al loro numero. 
Oltre alle normali caratteristiche que¬ 
sto programma, che può memorizza¬ 
re fino a 72.000 note se utilizzato 
sul Macintosh da 512K, offre un edi¬ 
ting delle tracce molto accurato con 
possibilità, per esempio, di correzio¬ 
ne automatica del tempo di una trac¬ 
cia e di sovrapposizione di più tracce 
su di un'unica traccia ricevente. 
Sempre di questa serie è disponibile 
una DX/TX Librarian che consente 
di caricare l’equivalente di 40 cartuc¬ 
ce di memoria RAM/ROM normal¬ 
mente utilizzate su queste serie di ta¬ 
stiere su di un unico dischetto. 

• Music Character Set. Più 
che un software grafico vero e pro¬ 
prio, si tratta di una serie di docu¬ 
menti Mac Paint contenenti i diversi 
elementi grafici necessari alla stesu¬ 
ra di uno spartito che poi è possibile 
stampare. Chiaramente nessun colle¬ 
gamento MIDI, né riproduzione mu¬ 
sicale dei pezzi. E’ prodotto dalla 
South Bay Software. 

• MusicWorks. La Hayden So¬ 
ftware è stata la prima a vedere nel 
Macintosh il computer giusto per il 
musicista, presentando già nel lonta¬ 
no luglio ’84 questo prodotto. Data 
l’anzianità, è probabilmente il so¬ 
ftware musicale più venduto per Ma¬ 
cintosh anche se risulta ormai sur¬ 
classato da prodotti più recenti. Con¬ 
sente la stesura di partiture musicali 
nota dopo nota su quattro voci e la 
loro successiva esecuzione. Gli stru¬ 
menti selezionabili sono solo 8 (la 
forma d’onda di due di questi può es¬ 
sere disegnata dall'utente). Le altre 
caratteristiche del programma sem¬ 


brano più aiutare nella stesura dello 
spartito che nella sua riproduzione, 
anche se la limitazione di stesura di 
64 battute in 4/4 o corrispondenti 
pone limiti anche alla generazione di 
spartiti. Inoltre non esiste nel pro¬ 
gramma la possibilità di generare ter¬ 
zine, cinquine e tutti i gruppi consi¬ 
derati irregolari. Con l’uscita di MI¬ 
DI Works ha avuto un certo rilan¬ 
cio, essendo possibile con quest’ulti¬ 
mo programma utilizzare i file creati 
da MusicWorks e trasmetterli attra¬ 
verso interfaccia MIDI. 

• Musprint. Per realizzare sparti¬ 
ti stampati in maniera ineccepibile 
Musprint è l’ideale, ma, come nel ca¬ 
so di Music Character Set, non si 
può chiedergli di eseguire il pezzo o 
trasferirlo attraverso MIDI. Unico di¬ 
fetto: non può stampare più di tre 
voci. Comunque per settembre do¬ 
vrebbe esserci una nuova versione 
potenziata. Dietro Musprint c’è la 
mente di Keith Hamel. 

• Professional Composer e 
Performer. Reduce dall’Award co¬ 
me uno dei migliori software per 
Macintosh del 1985, Professional 
Composer è prodotto dagli esperti 
della Mark of thè Unicom. La vinci¬ 
ta dell’Award conferma in pieno la 
qualità e la sofisticatezza di questo 
programma, che può fornire al com¬ 
positore un tale quantità di strumen¬ 
ti da rendere possibile qualsiasi cosa. 
Ben 109 simboli sono utilizzabili 
per la stesura del pezzo, e sono pre¬ 
senti alcune opzioni intelligenti: cor¬ 
rezione automatica dei ritmi, control¬ 
lo sul procedere dell’orchestrazione, 
gestione anche di gruppi come terzi¬ 
ne e cinquine o più in generale di 
qualsiasi gruppo irregolare. E’ un 
programma che il musicista deve as¬ 
solutamente vedere prima di prendere 
qualsiasi decisione sul software da a- 



Jam session 


é File Edlt Basic* Symbol* Uarlatlons Entra* Grouplngs 





Professional Composer 2 


15 










































































































































é File Edit Region Basics Windows 



Demo - (P) Carlos E. Campos 



<3 <]□>]] 


UUINft STOP PLtV MUSI Ritolti i W»IT 


Counterj 


MCISURE IEAT 


ie in odo 


Edit 

| Start : 1111000 

1 End: 1|1|000 


1 In: 111 1000 

| Out: 111 1000 


W/OOO'SS/'/WsOW/'/W'/'/','/'/'/'/ 

W/'/'s'/'/'s'/'/'/'/'s's's'/'/'/'/'/'s'/'/'/'/O 

W/W/W/W/'/'/'/'/'/W/'/'/'/'/'/'/'/'/'/'/ 

W/W/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/'/W/ 


Tracks 


<g] ri ff i T 


111 Mimmi (<£> 

9 * U 



[Solo] [T diT\ [ ftdd ) [Deletej 


MQUE REC. PLPV TRHCK N*ME 


^ Lead 

1 


^ Background 


f 

^ Bass 

1 

\ 

£> Lead/8ve doublé 

1 


> RX-11 

16 * 

1 


Performer 2 


dottare. Da qualche mese è disponibi¬ 
le anche Professional Performer che 
consente di eseguire le partiture pre¬ 
parate con il Composer e trasferirle 
attaverso MIDI. Unico neo di questi 
due eccezionali programmi, importa¬ 
ti in Italia da Sincro System di Mila¬ 
no e Syncrom di Roma, il prezzo de¬ 
cisamente elevato. Ma ne vale vera¬ 
mente la pena. 

• Song Painter. I non addetti ai 
lavori possono trovare notevoli sod¬ 
disfazioni con questo programma. 
Ci si può scrivere una canzone, fino 
a oltre 180 battute, in 4/4, 3/4 o 
2/4. Le possibilità di generazione 
del suono sono il minimo gestibile 
dal Mac: fino 4 voci con controlli in 
esecuzione di volume e tempo. E' 


distribuito da Rubicon Publishing. 

• Sound Cap. La riproduzione 
sonora di questo programma ha qual¬ 
cosa di veramente sorprendente; con¬ 
sente di caricare qualsiasi suono da 
tastiera e visualizzarlo attraverso un 
diagramma temporale. Oltre al nor¬ 
male editing, Sound Cap consente 
anche di invertire il suono, introdur¬ 
re effetti speciali come eco e riverbe¬ 
ro, ripetere fino a 99 volte un suo¬ 
no, modificare la velocità, introdurre 
rumore di fondo, sommare più suo¬ 
ni. E 1 prodotto da Fractal Software. 

• Sound Designer. Software 
molto specifico disponibile in due 
differenti versioni per due tastiere: 
lEmulator II della Emù e il Prophet 
2000 della Sequential Circuits. L'i¬ 


dea alla base di questo software è 
quella di dare alle tastiere delle possi¬ 
bilità di elaborazione e di analisi dei 
suoni gestibili alla maniera del Ma¬ 
cintosh, le cui possibilità grafiche 
sono tutte sfruttate per semplificare 
e velocizzare l'editing. Prodotto da 
Digi Designai trova da Sincro Sy¬ 
stem a Milano e Syncrom a Roma. 

• Studio Mac. La Creative Solu¬ 
tion produce questo simpatico so¬ 
ftware per coloro che si interessano 
di musica a livello hobbistico. Qual¬ 
che caratteristica: monofonia su otto 
tracce, massimo di 2000 note, pos¬ 
sibilità di uscita su MIDI (4 canali). 

• Total Music. E' un sistema 
che comprende software per la com¬ 
posizione, esecuzione ed elaborazio¬ 
ne di partiture e del relativo MIDI. 
Si può scegliere la rappresentazione 
degli eventi musicali con la notazio¬ 
ne standard oppure attraverso un si¬ 
stema a griglia (utilizzato in manie¬ 
ra simile da MusicWorks). Le trac¬ 
ce, non più di 99, sono in grado di 
controllare fino 16 canali MIDI o- 
gnuna. Le partiture possono anche 
essere introdotte direttamente dalla ta¬ 
stiera e si potranno eseguire tutti i 
taglia, incolla eccetera. Il numero di 
note gestibili è tra i più alti, oltre 
50.000, dovuto anche alla particola¬ 
re velocità di elaborazione (fino a 
800 note al secondo). La sicronizza- 
zione può essere quella del Mac o ri¬ 
chiamata da fuori. Da Sincro 
System, Milano, e Syncrom, Roma 

• Univers of Sound. Sistema 
all’avanguardia destinato ai possesso¬ 
ri di Emulator II della Emù, contie¬ 
ne appunto un dischetto per Macinto¬ 
sh e un Compact Disc: nel dischetto 
c'è il software relativo alla gestione 
dei collegamenti del Macintosh da u- 
na parte con l’Emulator e dall’altra 
con lo speciale lettore di dati su 
Compact Disc. In pratica il Compa¬ 
ct Disc contiene una biblioteca di 
suoni che possono essere caricati 
sull'Emulator II con l’ausilio del Ma¬ 
cintosh. Ogni suono viene sintetizza¬ 
to in 512K byte e ogni Compact Di¬ 
sc può contenere le informazioni di¬ 
gitali relative a ben 600.000 differen¬ 
ti suoni. Per ora viene proposto so¬ 
lo un disco Compact, che comunque 
contiene una biblioteca di suoni as¬ 
solutamente ineguagliata. Prossima¬ 
mente importato da Sincro System 
di Milano e Syncrom di Roma, avrà 
logicamente un prezzo elevato. 

Mauro Gandini 
Ha collaborato Francesca Marzotto 


Gli indirizzi utili 

In Italia: 

• Syncro System - Bosoni, Piazza Tricolore 2, Milano - Tel. 02/793048 

• Syncrom, Via F. Massimo 34, Roma - Tel. 06/3581296 

• Lemi, Corso Matteotti 37, Torino - Tel. 011/541654 
Negli USA: 

• Passport, 625 Miramontes, Half Moon Bay, CA94019-Tel. 001/415/7260280 

• Unicord, 89 Frost St., Westbury, New York 11590 - Tel. 001/516/3339100 

• Wise Music (dealer), 11740 West Florissant, Florissant, MO 63033 - Tel. 
001/314/8373030 

•Ace Music Center (dealer), 13630 Dixie Hway, N. Miami, FL 33161 - Tel. 
001/305/8916201 

• Dr. T's Music Software, 24 Lexington Street, Watertown, MA 02172 - Tel. 
001/617/9263564 

• Electronics Arts, 2755 Campus Drive, San Mateo, CA 94403 

• Hayden Software, 650 Suffolk Street, Lowell, Mass. 01854 - Tel. 001/617/9370200 

• Utopian Software, P O. Box 40028, Long Beach, CA 90804 

• South Bay Software, P.O. BOX 969, Milìbrae, CA 94030 

• Rubicon Publishing, 6300 La Calma Drive, Suite 100, Austin, TX 78752 

• Creative Solutions, 4701 Randolph Road #12, Rockville, MD 20852 - Tel. 
001/301/9840262 

Canada: 

• Keith Hamel, 466 Albert Street, Kingston, Ontario 


16 






































































































































Aggiungere un tocco di personalizzazione e di vivacità a un programma? 
La soluzione, da sempre, è una routine musicale. Che sia buona, però, 
e versatile... Eccone una con tanto di staccati, corone, ritardi e pause. 

Quella nota 
di allegria 

Personalizzare un programma e vi¬ 
vacizzare un gioco sono operazioni 
che si fanno, in genere, con il soc¬ 
corso di qualche buona routine musi¬ 
cale: ritmi e suoni, inseriti nei pro¬ 
grammi Applesoft, li rendono infatti 
molto più simpatici. 

Il problema è, naturalmente, co¬ 
me inserire la musica nel program¬ 
ma. Può capitare di passare ore e ore 
a giostrare con i POKE e i CALL 
senza riuscire ad avere le note deside¬ 
rate. Se poi la musica comprende 
staccati, corone, ritardi e pause si fi¬ 
nisce per rinunciare. E la routine so¬ 
nora in linguaggio macchina che si 
è presa a prestito risulta inadeguata 
allo scopo. Millenote, invece, è un 
programma di utilità potente ma faci¬ 
le da usare, che consente il rapido in¬ 
serimento di qualsiasi melodia nei 
programmi in Applesoft e può suo¬ 
nare qualsiasi nota in un’estensione 
di quattro ottave, con una durata che 
va da un fugace clic a sei minuti i- 
ninterrotti. E con un altro piccolo 
sforzo Millenote permette anche 
qualche fantasioso effetto sonoro per 
dare vivacità ai giochi. 

Per usare concretamente il pro¬ 
gramma si deve ovviamente saper 
leggere la musica, il che non è dav¬ 
vero troppo difficile. In molti dizio¬ 
nari e nella maggior parte delle enci¬ 
clopedie si trovano informazioni a 
sufficienza per imparare le note. 

Lezione di musica 
computerizzata 

Dopo aver inserito in memoria il 
listato 1, battete BRUN MILLE- 
NOTE, e sarete pronti all’azione. 


Allegro 


G. Puccini 



TUNES CODE: &X &RE4TX &B &D &G &F#S ' &G &Fjjf &DS &B &G3 

FOOTNOTES: (t) (2) (3) (4) (5) 


«fi 


SE 


ÉpiÉ 


&F/TH &G &F#S &EES &G &D &G H &C tt &AE4L &R 
(6) (7) (8) (9) (10) 


m é > * 




&RH &AES &R &RQ &AE &R &HQ &AE &R &RQ 


Tempo di valse lento 






P 



&DH4LT (X-50 ) &DS3 &A4 &D &Ctfll &D33 &F tt &A4 &C tt 

( 11 ) 




m 


ritardando 

&BH.HEP &BEL ecCtfET (X-60 ) &ET ADETj[X-75) *C 'tt &B 

(12) (13) (H) 


f-r. J m 

einDO^* 


a tempo 


&DET(X-50) &G3 &GQS &GQLHE &AE4P àBET(X-60) &1;TL £L-C#EPT(X-75 ) &B &A 
(15) (16) (17) 


Figura 1. Valzer di Musetta (da La Bohème di Puccini). 


17 














































































Apple Edrr: Il sis 

dal bozzetto 


Questa è la bozza del vostro notiziario 
aziendale, così come lo fareste, con 
tutte le vostre indicazioni, aggiunte, 
correzioni di testo, modifiche 
all'immagine grafica... 



...e questo è il vostro notiziario 
aziendale finito e stampato proprio 
come lo volete voi. Impaginato, 
redatto, illustrato, assemblato da Apple 
EdIT in metà tempo e fatto tutto da 


mie e il marchio Apple sono marchi registrati della Apple Computer Ine LaserWriter, MacDraw sono marchi della Apple Computer Ine. Macintod) è un marchio Mclntosh Laboratory Ir 
è usato su sua licenza. Page Maker è un marchio Aldus Corporation. Microsoft è un marchio Microsoft Corporation. ReadySetGo è un marchio di Manhattan Graphics. 





tema più veloce 
alla stampa. 





Qui a fianco, un notiziario aziendale 
in bozza come lo fareste voi. 

A sinistra in basso, la stampa finita del 
notiziario come la volete voi. 

A destra, Apple® EdIT, il sistema 
che, finalmente, fa tutto il lavoro 
per voi. 

Apple EdIT è il più rivoluzionario 
sistema integrato per realizzare 
qualunque tipo di documento o 
stampato, dalla bozza iniziale alla 
stampa finale: libri, riviste, relazioni, 
cataloghi, listini, manuali, etc. 

La cosa di per sè è molto 
apprezzabile; ma lo è ancor di più se 
tenete conto che con Apple EdIT si 
evitano tutti gli sprechi di tempo 
tipici dei metodi tradizionali di 
stampa. Il che vuol dire meno gente 
impegnata nella realizzazione, 




ReadySetGo, 
realizzato dalla 
Manhattan 
Graphics. 

Microsoft Word, 
realizzato dalla 
Microsoft. 




m 

PageMaker, 
realizzato dalla 
Aldus Corporation, 



M.kI*jh £ ■ 



£■ 


MacDraw, 
realizzato dalla 
Apple Computer. 


nessuna esecuzione da fare fuori 
azienda e, soprattutto, costi ridotti 
all’osso. 

Quindi un guadagno totale sotto ogni 
aspetto. 

Il sistema Apple EdIT è formato da 
un computer Macintosh’" 512K, 
oppure dal nuovo Macintosh'" Plus, 
con maggiore potenza e velocità; più 
la sofisticata stampante LaserWriter" in 
grado di stampare con ben 35 


caratteri tipografici diversi e realizzare 
qualsiasi composizione su carta, 
lucido, buste, etichette. 

Il software a disposizione di Apple 
EdIT comprende tra l’altro: 
PageMaker™, Microsoft™ Word, 
ReadySetGo™ e MacDraw™ 

Ognuno di loro permette tali e 
tante soluzioni di grafica, testi, 
impaginazione, sillabazione in 
italiano, stampa e illustrazione da 
soddisfare al meglio qualsiasi 
esigenza. 

Tutto questo è Apple EdIT. Vi pare 
poco? 

A noi no, ma se volete sapere 
perchè Apple EdIT è il sistema che fa 
proprio per voi e tutto per voi, venite a 
conoscerlo meglio in un 
Apple.Center. Gli indirizzi sono sulle 
Pagine Gialle. 


Editoria Individuale Testo-grafica. 




Ecco la sofisticata stampante LaserWriter: in pochi secondi, esattamente come lo 
desiderate, stampa tutto ciò che avete realizzato su Macintosh. Dal computer, alla 
stampante, direttamente a voi! 


V. Apple Computer 



























lo applico, 
tu applichi? 


La pubblicità su 
Applicando è informazione. 
Chi legge Applicando 
possiede un computer 
Apple o sta per cambiarlo 
con un Apple//e. 

O con un Apple //c. 

O con un Macintosh. 
Oppure non lo cambia 
affatto, se lo tiene stretto, 
ma vuol sapere dove, 
come e cosa fa 
veramente per lui. 

Una nuova marca 
di dischetti? 

Una nuova 
Software House? 

Una nuova stampante 
a basso prezzo? 

Per chi applica, 
è importante saperlo. 
Subito. 


STUDIOSFERA 
sas di Berardo & C 
1 * Strada 24 ■ Milano S. Fe 
lice - 20090 Segrate MI - te 
letono 02/7533939 - 7532151 
telex 350132 MACORM-C.F. e 
P Iva 0701483015 7-C.C.IAA. 
Milano 1132820 - Tribunale 
MilanoReg Soc n. 64797 
Banca Popolare di 
M ilano Ag. 17 


Per la pubblicità 
studiosfem sas 

telefono 02/ 7533939 - 7532151 


■ 


Qualche nota sul valzer di Musetta 

1. Imposta i parametri di default. 

2. Pausa di un ottavo (croma). Inoltre imposta l'ottava su 4 e il tempo 

su X (X è la variabile ai input del tempo nel programma, visibile nel lista¬ 
to 2, linea 260). 

3. li suono è una croma, altezza Si, ottava 4. Basta specificare la nota 
perché il default è appunto croma, ottava 4. 

4. E un Fa# di terzina di un sedicesimo (semicroma). La terzina è indica¬ 
ta dall'apostrofo ('). Anche le due note seguenti (Sol e Fa#) sono note 

di terzina. 

5. Il Sol è nell'ottava 3, e quindi si deve specificare "3". Fine della misu¬ 
ra uno. 

6. Gli abbellimenti, Fa# e Sol, sono impostati sulla durata di una bi¬ 
scroma. 

7. Questo Fa#, scritto come croma, è impostato sulla semicroma per 
mantenere il ritmo, dato che gli abbellimenti che lo precedono occupano 
tempo. 

8. S in questo comando imposta lo Staccato. 

9. L reimposta il Legato (note collegate). 

10. Una pausa di una croma mette fine alla misura due. 

11. Per il "Tempo di valzer lento" l'X-50 imposta un tempo che è di 50 mo¬ 
vimenti al minuto più lento dell'introduzione. 

12. La nota è una minima puntata, altezza Si, con una fermata di una 
croma. La P imposta il Portato (note separate da una lieve pausa). 

13. Ritardando sta a indicare un graduale rallentamento. L'X-60 rallenta 
il tempo rispetto a quello precedente che era di X-50 movimenti al mi¬ 
nuto. 

14. AH'abbellimento viene data la durata di una biscroma. 

15. A tempo sta a indicare che il ritardando è finito e si deve riprendere 
il tempo originale. 

16. Questa nota è un Sol della durata di una semiminima. E' impostato il 
legato (in quanto la nota precedente era staccato). HE finale significa 
tenere una croma in più (legatura). 

17. Lo spartito esemplificativo si ferma qui. Per il resto della musica 
bisogna battere tutto il listato 2. 


Con un & seguito da <RETURN> 
si sentirà un suono breve e chiaro: 
l’& richiama il programma Milleno¬ 
te e suona la nota. Provate ancora a 
fare &<RETURN>. La nota che si 
sente è il Do centrale, che è nell’otta¬ 
va 3 dell’estensione di Millenote. Il 
suono è inoltre un quarto (semimini¬ 
ma) al tempo di 160 movimenti (di 
un quarto) al minuto. Battete adesso 
<RETURN> : sentirete 
quattro semiminime di Do centrale, 
suonate in legato, cioè senza interru¬ 
zioni o pause. Scopriamo così che 
le condizioni di default per Milleno¬ 
te sono quelle di altezza Do, ottava 
3, quarto (semiminima), legato, 160 
movimenti al minuto. 

Provate a battere: 
&:&D:&E:&F:&G:&A4:&B:&C. 
Avrete suonato la scala di Do. Il pri¬ 
mo suono (di default) era il Do cen¬ 
trale, il secondo il Re, il terzo il 
Mi, e così via (le lettere nel coman¬ 
do corrispondono alla denominazio¬ 
ne alfabetica delle note d’uso tedesco 
e anglosassone). Le diverse altezze 
sono specificate con il parametro di 
altezza, nell’estensione A-G (La- 
Sol). Tutte queste note vengono suo¬ 
nate come semiminime in legato, a 
160 movimenti al minuto. Dato che 
l’alfabeto musicale spazia soltanto 


da A a G (ossia da La a Sol) si è do¬ 
vuto ricominciare da capo con A 
(La) dopo G (Sol) sopra C (Do) cen¬ 
trale. Ma occorreva un La dell'ottava 
più alta seguente, perciò si è dovuta 
specificare una nuova ottava, in que¬ 
sto caso 4. Le ultime due note, Si e 
Do, hanno assunto il nuovo default 
ottava 4. Per suonare nuovamente la 
scala si dovrà rispecificare all'inizio 
l’ottava 3: 

&C3 : &D: &E: &F: &G: &A4: &B :C. 

La nota più bassa disponibile in 
Millenote è il Re diesis e le note 
specificate più basse di questa, per e- 
sempio &A1, &B1, &C1 e &D1, 
daranno pur sempre un suono, ma si 
tratterà di un Re diesis. L'altezza 
massima esatta a disposizione è 
&F5. 

Si possono specificare note più al¬ 
te (&G5, &A6 e così via) e verrà e- 
messo un suono, ma l’altezza non sa¬ 
rà esatta. Per avere i migliori risulta¬ 
ti è necessario tenere il parametro 
dell'ottava nell'estensione 2-5. 

Diesis, bemolle 
durata e staccato 

Che fare se occorre per la nota un 
diesis o un bemolle? E' semplice. I 
comandi &C3 : &C# daranno un Do 


20 
















centrale e poi un Do diesis, mentre i 
comandi &E : &E! daranno un Mi e 
poi un Mi bemolle. 

E se occorre una diversa durata del¬ 
la nota? Anche questo è molto sem¬ 
plice. Provate a digitare: 
&CE3:&D:&E:&F:&G:&A4:&B: 
&CH. 

Sentirete la scala di Do suonata a 
velocità doppia della precedente (con 
l’eccezione dell'ultima nota), perché 
i suoni sono di un ottavo (croma) an¬ 
ziché di un quarto. La "E” che si tro¬ 
va alla prima nota indica appunto la 
durata di un ottavo (in inglese ei- 
ghth). E la ”H” dell’ultima nota indi¬ 
ca una metà (in inglese half), o mini¬ 
ma. Le durate disponibili sono inte¬ 
ro (semibreve), metà (minima), quar¬ 
to (semiminima), ottavo (croma), se¬ 
dicesimo (semicroma) e trentaduesi¬ 
mo (biscroma), in inglese rispettiva¬ 
mente whole, half, quarter, eighth, 
sixteenth e thirty-second, cioè W, 
H, Q, E, S e T. 

Il parametro di durata, se specifica¬ 
to, deve seguire immediatamente il 
parametro (o i parametri) di altezza. 


L'ottava, se specificata, deve seguire 
qualsiasi eventuale parametro di du¬ 
rata. Millenote permette anche le no¬ 
te con il punto, o puntate, dove il 
punto estende la durata di metà valo¬ 
re originale: &CH.3 suona un Do 
centrale della durata di una minima 
puntata (l'equivalente in durata di tre 
semiminime), &DQ. suona una se¬ 
miminima puntata (l'equivalente di 
tre crome) e così via. 

Infine si possono fare le terzine. 
Una terzina di tre semiminime, per e- 
sempio, è di durata uguale a due nor¬ 
mali semiminime. La codifica viene 
fatta con un comando del tipo 
&CQ':&:&:, dove l'apostrofo signi¬ 
fica nota di terzina. Per fare crome di 
terzina, tre delle quali sono uguali in 
durata a due crome normali, ossia a 
una semiminima normale, si deve fa¬ 
re il comando &CE’. Se si vuole u- 
na nota di terzina puntata bisogna 
mettere il punto prima dell’apostro¬ 
fo; per esempio &CQ.’ genererà una 
semiminima puntata di terzina. 

Per vedere in azione lo staccato, 
provate a battere: 


&CQS:&D:&E:&F:&G:&A4:&B: 

&CHL 

E' ancora la scala di Do, ma con 
un'importante differenza: le note so¬ 
no in staccato. Questo significa che 
la durata del suono è abbreviata e c’è 
una pausa fra nota e nota. La cosa 
importante da rilevare è che il tempo 
(160 movimenti al minuto) rimane 
immutato. E’ questa la forza di Mil¬ 
lenote: non bisogna più fare i calco¬ 
li per ottenere lo staccato delle note, 
è tutto automatico. 

Per avere lo staccato delle note ba¬ 
sta includere una lettera S nella li¬ 
sta dei parametri dopo l’altezza e la 
durata, come è visibile nell'esempio 
appena citato; se ci si dimentica di 
inserire il parametro di durata e si 
mette S per avere lo staccato, il pro¬ 
gramma penserà che S stia per sedi¬ 
cesimo e lo tratterà come parametro 
di durata. 

Per tornare al legato si batte la let¬ 
tera "L" (dopo i parametri di altezza 
e di durata), come si vede nell'ultima 
nota delle scale di Do riportate 
sopra. 


Listato 1. Millenote 

DOS 3.3 



Apple Ile 

9200.9600 

Apple Ile 


9200- 

A9 

4C 

8D 

F5 

03 

A9 

54 

8D 

9208- 

F6 

03 

A9 

92 

8D 

F7 

03 

A9 

9210- 

1B 

85 

73 

A9 

92 

85 

74 

20 

9218- 

1B 

92 

60 

A9 

06 

8D 

F6 

95 

9220- 

A9 

4D 

85 

06 

A9 

18 

85 

F9 

9228- 

A9 

26 

85 

08 

A9 

03 

85 

09 

9230- 

20 

34 

92 

60 

A9 

00 

8D 

F2 

9238- 

95 

8D 

F3 

95 

8D 

F 4 

95 

8D 

9240- 

F5 

95 

8D 

F7 

95 

8D 

F8 

95 

9248- 

8D 

F9 

95 

8D 

FA 

95 

8D 

FB 

9250- 

95 

85 

FA 

60 

20 

6F 

92 

20 

9258- 

69 

93 

20 

4 E 

94 

AD 

F5 

95 

9260- 

F0 

06 

A9 

00 

8D 

F5 

95 

60 

9268- 

20 

24 

95 

20 

E8 

94 

60 

20 

9270- 

B7 

00 

DO 

09 

68 

68 

20 

24 

9278- 

95 

4C 

E8 

94 

60 

C9 

B3 

DO 

9280- 

0A 

A9 

60 

8D 

24 

95 

8D 

E8 

9288- 

94 

DO 

14 

C9 

AE 

DO 

02 

F0 

9290- 

04 

C9 

A6 

DO 

10 

A9 

A5 

8D 

9298- 

24 

95 

A9 

AD 

8D 

E8 

94 

20 

92A0- 

B1 

00 

68 

68 

60 

20 

0A 

93 

92A8- 

20 

88 

93 

20 

B1 

00 

F0 

CC 

92B0- 

B0 

08 

38 

E9 

30 

85 

09 

4C 

92B8- 

AB 

92 

C9 

53 

DO 

08 

A9 

01 

92C0- 

8D 

F2 

95 

4C 

AB 

92 

C9 

50 

92C8- 

DO 

08 

A9 

01 

8D 

F3 

95 

4C 

92D0- 

AB 

92 

C9 

54 

DO 

0F 

20 

F5 

92D8- 

E6 

E0 

18 

B0 

02 

A2 

18 

86 

92E0- 

08 

20 

A8 

94 

60 

C9 

48 

DO 

92E8- 

06 

20 

39 

94 

4C 

AB 

92 

C 9 

92F0- 

4C 

DO 

14 

A9 

00 

8D 

F2 

95 

92F8- 

8D 

F3 

95 

8D 

F8 

95 

8D 

F9 

9300- 

95 

8D 

FA 

95 

8D 

FB 

95 

4C 

9308- 

AB 

92 

C9 

52 

DO 

06 

A9 

01 

9310- 

8D 

F4 

95 

60 

C9 

58 

DO 

1B 

9318- 

20 

B1 

00 

DO 

08 

20 

1B 

92 

9320- 

68 

68 

68 

68 

60 

A9 

01 

8D 

9328- 

F5 

95 

A5 

B8 

DO 

02 

C6 

B9 

9330- 

C6 

B8 

60 

38 

E9 

40 

0A 

AA 

9338- 

A9 

00 

8D 

F 4 

95 

20 

B1 

00 

9340- 

C9 

23 

DO 

11 

E8 

E0 

05 

DO 

9348- 

04 

E8 

4C 

65 

93 

E0 

0B 

DO 


9350- 

14 

E8 

4C 

65 

93 

C9 

21 

DO 

9358- 

04 

CA 

4C 

65 

93 

A5 

B8 

DO 

9360- 

02 

C6 

B9 

C6 

B8 

8E 

F6 

95 

9368- 

60 

AD 

F 4 

95 

F0 

05 

A9 

00 

9370- 

4C 

85 

93 

A6 

09 

AD 

F6 

95 

9378- 

CA 

F0 

06 

18 

69 

0E 

4C 

78 

9380- 

93 

AA 

BD 

9C 

95 

85 

06 

60 

9388- 

20 

B1 

00 

C9 

57 

DO 

07 

A9 

9390- 

60 

85 

07 

4C 

D6 

93 

C9 

48 

9398- 

DO 

07 

A9 

30 

85 

07 

4C 

D6 

93A0- 

93 

C9 

51 

DO 

07 

A9 

18 

85 

93A8- 

07 

4C 

D6 

93 

C9 

45 

DO 

07 

93B0- 

A9 

OC 

85 

07 

4C 

D6 

93 

C9 

93B8- 

53 

DO 

07 

A9 

06 

85 

07 

4C 

93C0- 

D6 

93 

C9 

54 

DO 

07 

A9 

03 

93C8- 

85 

07 

4C 

D6 

93 

A5 

B8 

DO 

93D0- 

02 

C6 

B9 

C6 

B8 

60 

A9 

00 

93D8- 

85 

FA 

A9 

00 

8D 

F7 

95 

A5 

93E0- 

07 

85 

F9 

20 

B1 

00 

C9 

2E 

93E8- 

DO 

13 

A5 

07 

8D 

FC 

95 

4A 

93F0- 

18 

6D 

FC 

95 

85 

F9 

90 

02 

93F8- 

E6 

F9 

20 

B1 

00 

C9 

27 

DO 

9400- 

CC 

06 

F9 

26 

FA 

A9 

00 

8D 

9408- 

FC 

95 

8D 

FD 

95 

A9 

03 

8D 

9410- 

FE 

95 

A0 

10 

06 

F9 

26 

FA 

9418- 

2E 

FC 

95 

2E 

FD 

95 

38 

AD 

9420- 

FC 

95 

ED 

FE 

95 

AA 

AD 

FD 

9428- 

95 

E9 

00 

90 

08 

8E 

FC 

95 

9430- 

8D 

FD 

95 

E6 

F9 

88 

DO 

DC 

9438- 

60 

A5 

FA 

48 

A5 

F9 

48 

20 

9440- 

88 

93 

18 

68 

65 

F9 

85 

F9 

9448- 

68 

65 

FA 

85 

FA 

60 

AD 

F7 

9450- 

95 

DO 

4F 

AD 

F2 

95 

F0 

0E 

9458- 

46 

FA 

66 

F9 

A5 

F9 

8D 

F8 

9460- 

95 

A5 

FA 

8D 

F9 

95 

AD 

F3 

9468- 

95 

F0 

37 

A5 

F9 

8D 

FC 

95 

9470- 

A5 

FA 

8D 

FD 

95 

4E 

FD 

95 

9478- 

6E 

FC 

95 

4E 

FD 

95 

6E 

FC 

9480- 

95 

4E 

FD 

95 

6E 

FC 

95 

38 

9488- 

A5 

F9 

ED 

FC 

95 

85 

F9 

A5 

9490- 

FA 

ED 

FD 

95 

85 

F,A 

AD 

FC 

9498- 

95 

8D 

FA 

95 

AD 

FD 

95 

8D 

94 AO- 

FB 

95 

A9 

01 

8D 

F7 

95 

60 

94 A8- 

A9 

00 

8D 

FC 

95 

8D 

FD 

95 

94B0- 

A9 

80 

8D 

FE 

95 

A9 

17 

8D 

94B8- 

FF 

95 

A0 

10 

0E 

FE 

95 

2 E 

94C0- 

FF 

95 

2E 

FC 

95 

2E 

FD 

95 

94C8- 

38 

AD 

FC 

95 

E5 

08 

AA 

AD 


94D0- 

FD 

95 

E9 

00 

90 

09 

8E 

FC 

94D8- 

95 

8D 

FD 

95 

EE 

FE 

95 

88 

94E0- 

DO 

DA 

AD 

FE 

95 

85 

08 

60 

94E8- 

AD 

F2 

95 

OD 

F3 

95 

DO 

01 

94F0- 

60 

A5 

FA 

48 

A5 

F9 

48 

AD 

94F8- 

F8 

95 

85 

F9 

AD 

F 9 

95 

85 

9500- 

FA 

18 

A5 

F9 

6D 

FA 

95 

85 

9508- 

F9 

A5 

FA 

6D 

FB 

95 

85 

FA 

9510- 

A5 

06 

48 

A9 

00 

85 

06 

20 

9518- 

24 

95 

68 

85 

06 

68 

85 

F9 

9520- 

68 

85 

FA 

60 

A5 

FA 

48 

A5 

9528- 

F9 

48 

A2 

04 

06 

F9 

26 

FA 

9530- 

CA 

DO 

F9 

A5 

08 

48 

A9 

00 

9538- 

85 

1A 

85 

1B 

85 

1C 

85 

FB 

9540- 

A0 

08 

46 

08 

90 

13 

18 

A5 

9548- 

F9 

65 

1A 

85 

1A 

A5 

FA 

65 

9550- 

1B 

85 

1B 

A5 

FB 

65 

1C 

85 

9558- 

1C 

06 

F9 

26 

FA 

26 

FB 

88 

9560- 

DO 

E0 

68 

85 

08 

68 

85 

F9 

9568- 

68 

85 

FA 

A6 

06 

DO 

05 

A9 

9570- 

01 

8D 

7D 

95 

CA 

F0 

05 

EA 

9578- 

EA 

4C 

81 

95 

8D 

30 

CO 

A6 

9580- 

06 

A5 

1A 

DO 

OC 

A5 

1B 

DO 

9588- 

06 

A5 

1C 

F0 

09 

C6 

1C 

C6 

9590- 

1B 

C6 

1A 

4C 

74 

95 

A9 

30 

9598- 

8D 

7D 

95 

60 

FF 

FF 

FF 

FF 

95A0- 

FF 

FF 

FF 

FF 

FF 

FF 

F6 

F 6 

95A8- 

E8 

DB 

CF 

C3 

B8 

AC 

A4 

A4 

95B0- 

9B 

92 

8A 

82 

7B 

7B 

74 

6D 

95B8- 

67 

62 

5C 

57 

52 

52 

4D 

49 

95C0- 

45 

41 

3E 

3E 

3A 

37 

34 

31 

95C8- 

2E 

2B 

29 

29 

27 

25 

23 

21 

95D0- 

1F 

1F 

1D 

1B 

1A 

18 

17 

16 

95D8- 

14 

14 

13 

12 

11 

10 

0F 

0F 

95E0- 

0E 

'od 

OC 

0B 

0A 

09 

08 

08 

95E8- 

07 

06 

05 

04 

03 

03 

02 

01 

95F0- 

00 

00 

A0 

A0 

A0 

A0 

C5 

A0 

95F8- 

BA 

A0 

A0 

A0 

A0 

A0 

AD 

A0 

9600- 

A0 









Checksum del listato 1 

NOME FILE: 

MILLENOTE 

TIPO: B 


LUNGHEZZA: 

0400 

CHECKSUM : 

A6 


21 












Portato, fermate, 
legature e tempo 

A volte possono occorrere note 
che non siano staccate, ma abbiano 
una breve pausa fra l’una e l'altra; in 
questo caso si parla allora di portato 
o mezzo staccato. Si può ottenerlo 
con il comando Pause (o portato). 
Di conseguenza &F#QP:&:&:& da¬ 
rà quattro semiminime Fa# con una 
lieve interruzione fra le note. Con¬ 
frontando &F#QP:&:&:& con &F# 
QL:&:&:&, noterete che il comando 
di legato disattiva il portato (oltre a 
disattivare lo staccato). Se nella lista 
dei parametri sono compresi entram¬ 
bi i comandi staccato e portato, la 
nota sarà ancora più corta, con una 
concomitante pausa più lunga (vale 
a dire portato e staccato si aggiungo¬ 
no l'uno all'altro). 

Per passare dal puro staccato al pu¬ 
ro portato bisogna fare qualcosa del 
tipo &CQLS :&DQLP:&EQL. La L 
nella prima nota elimina qualsiasi 
portato o staccato che si trovi lì per 
una nota precedente, e poi la S dà lo 
staccato àia nota. La L nella secon¬ 
da nota cancella lo staccato dalla pri¬ 
ma nota e la P la rende una nota con 
portato. Infine la terza nota (e natu¬ 
ralmente le note successive) verrà 
impostata sul legato con la L conclu¬ 
siva. Anche una fermata (corona) o 
una legatura si realizzano facilmente 
con Millenote. Per esempio il co¬ 
mando &GWHW avrà come effetto 
due semibrevi legate. La H che se¬ 
gue il parametro di altezza e il pri¬ 
mo parametro di durata indica una 
fermata o corona (in inglese hold, 
trattenere) e la W (iniziale dell’ingle¬ 
se whole) dopo la H indica una nota 
intera o semibreve. Si deve fare at¬ 
tenzione che il comando H venga do¬ 
po l’altezza e il primo parametro di 
durata; in caso contrario il program¬ 
ma penserà che H stia per H, cioè 
per metà o minima. 

Con il comando &GISHH.3 suo¬ 
nerete un Sol bemolle dell'ottava 3 e 
di durata uguale alla somma di un se¬ 
dicesimo (semicroma) e di una metà 
(minima) puntata. Notate che dopo 
la specificazione dei parametri di al¬ 
tezza e durata i parametri di fermata 
e il parametro di ottava possono es¬ 
sere enunciati in qualsiasi ordine. 

Si possono anche avere legature 
multiple: cronometrate la nota 
&CWHWHWHWHWHWHW. Do¬ 
vreste ottenere una durata appena in¬ 
feriore a 10,5 secondi, sempre che 




Listato 2. Millenote demo 1 

DOS 3.3 

10 REM - 

11 REM MILLENOTE - DEMO 1 

12 REM DI S. SCOTT ZIMMERMAN 

13 REM COPYRIGHT (C) 1986 


Apple Ile 

Apple Ile 


14 REM BY APPLICANDO 4 

15 REM MICROSPARC, INC. 

16 REM - 

120 IF PEEK (37403) = 169 AND PEEK (38385) = 0 AND PEEK (1014) 
= 84 AND PEEK (1015) = 146 THEN 160: REM CONTROLLA SE "MI 
LLENOTE" E' PRESENTE IN MEMORIA ED INIZIALIZZATO 
140 PRINT CHR$ (4);"BRUN MILLENOTE" 

160 TEXT : HOME : VTAB 2: PRINT "(C) 1986 APPLICANDO 4 MICROSPARC 
, INC." 

180 VTAB 6:A$ = "VALZER DI MUSETTA": HTAB (41 - LEN (A$)) / 2: I 
NVERSE : PRINT A3: NORMAL : PRINT :A$ = "DA 'LA BOHEME' DI PU 
CCINI": HTAB (41 - LEN (A3)) / 2: PRINT A3 
200 PRINT : PRINT :A3 = "PROGRAMMATO DA": HTAB (41 - LEN (A3)) / 
2: PRINT A3:A3 = "S. SCOTT ZIMMERMAN": PRINT : HTAB (41 - L 
EN (A3)) / 2: PRINT A3 

220 PRINT : PRINT :A3 = "CON": HTAB (41 - LEN (A3)) / 2: PRINT A 

3:A3 = " M I L L E N O T E ": PRINT : HTAB (41 - LEN (A3)) / 

2: INVERSE : PRINT A3: NORMAL 

260 X = 150: VTAB 23: CALL - 868: PRINT "CHE TEMPO (IN MOVIMENTI 
/MIN)? "; X; : POKE 36, ( PEEK (36) - 3): INPUT "";X3: VTAB 23: 
HTAB 1: CALL - 868 
280 IF X3 = "" THEN 380 
300 X = VAL (X 3) 

320 IF X > 255 THEN X = 255 
340 IF X < 61 THEN X = 61 

360 REM NOTE INTRODUZIONE DEL "VALZER DI MUSETTA": 

380 & X: & RE4TX: & B: & D: & G: & F#S': & G: & F#: 4 DE: & B: & 

G3: REM FINE DELLA PRIMA BATTUTA 
400 4 F#T: & G: & F#S: & EES: & G: & D: & G#: 4 C#: & AE4L: 4 R: 


420 

4 RH: 4 AES: 

FINE DELLA 
REM INIZIO 

4 R: 4 RQ: 4 AE: 4 
QUARTA BATTUTA 
SEZIONE TEMPO 3/4 

R: 

4 RQ: 

4 AE: 4 R: 4 RQ 

~".v* 

440 

4 DH4LT(X - 

50): 4 DS3: 4 F#: 4 

A4: 

: 4 D: 

4 C#H: 4 DS3: 4 


& A4: 4 C#: 4 BH.HEP: 4 BEL: 4 C#ET(X -60): 4 ET: 4 DET(X - 
75): 4 C#: & B: & DET (X -50): & G3: 4 GQS: 4 GQLHE 
460 & AE4P: & BET(X -60): 4 DTL: 4 C#EPT (X -75): & B: 4 A: REM 

FINE DELLA FIGURA 1 

470 4 XTLT(X - 50): & A: 4 C#E: 4 F#3: 4 F#QS: 4 FfQLHE 
480 & AE3: & B: & D: & F#: & A4: & DH: 4 DS3: 4 F#: 4 A4: 4 D: 4 
C#H 


500 


520 

540 

560 


580 

600 

620 

640 


4 DS3: 4 F#: 4 A4: 4 C#: 4 BH.HE: 4 BE: 4 C#: 4 ET: 4 DE: 4 C 

#: 4 B: 4 AS'T(X -70): 4 B: 4 AE5T(X - 100): 4 F#E4T(X - 70) 

: 4 E: 4 D:: 4 B: 4 F#E3HET (X -50): 4 AE4: 4 AQ: 4 EE3S: 4 F 
#: 4 XEL: 4 D: 4 R: 4 D: 4 REHQHH. 

REM FINE DEL VALZER DI MUSETTA 

VTAB 23: CALL - 868: PRINT "VUOI RIASCOLTARLO? (S/N)" 

VTAB 23: HTAB 37: INVERSE : PRINT' " 4 CT5ST255: 4 RW: HTA 

B 37: NORMAL : PRINT " ": IF PEEK ( - 16384) < 128 THEN 4 G 

T4: 4 RW: IF PEEK ( - 16384) < 128 THEN 560 

X = PEEK ( - 16384): POKE - 16368,0 
IF X = 211 THEN 260 
IF X = 206 THEN END 
GOTO 560 


Checksum del listato 2 

NOME FILE: 

MILLENOTE DEMO 1 

TIPO: A 


LUNGHEZZA: 

0 6B9 

CHECKSUM : 

DO 


siate in grado di calcolarla: il tempo 
di default è di 160 movimenti/minu¬ 
to, che è il numero delle semimini¬ 
me al minuto. Ogni semibreve equi¬ 
vale a quattro semiminime, e la nota 
riportata qui sopra ha sette equivalen¬ 
ti di semibreve. La nota dovrebbe a - 
vere una durata uguale a 4x7=28 se¬ 
miminime. La durata totale dev'esse¬ 
re perciò (28 movimenti)/(160 movi¬ 
menti/min) = (0,175 min) (60 
sec/min) = 10,5! 

E veniamo al tempo: può darsi 
che vogliate accelerare o rallentare u- 
na melodia rispetto al default di 160 
movimenti/minuto. Notate allora 
questo comando: &FQT180. Dopo 


la specificazione dei parametri di al¬ 
tezza e durata viene data una T per il 
Tempo, seguita da un numero intero 
uguale ai movimenti al minuto desi¬ 
derati. Di fatto quello del tempo è il 
solo comando di Millenote che pos¬ 
sa gestire un'espressione in Appleso¬ 
ft, purché l'espressione sia un valore 
intero compreso nell'arco 24-255. 
Per esempio si potrebbe usare il co¬ 
mando TP=20:&FQT(200-TP) per 
ottenere il tempo di 180 movimen¬ 
ti/minuto. Ed ecco come ottenere un 
ritardando (rallentamento graduale): 
TEMPO=160:&CQ3TTEMPO:&D: 
&E: &F: &GQT(TEMPO-30): &AQ4 
(TEMPO-60):&BQT(TEMPO-90): 


22 












adverteam 


L'H/lzGA 


LA VELOCITA' DEL WINCHESTER, 
LA VERSATILITÀ DEL FLOPPY 

CON LA SICUREZZA 
DI DERNOULLI DOX 


Bernoulli Box: un sistemo rivoluzionario nelle 
memorie di masso. 

Bernoulli Box: un sistemo composto da cartuc¬ 
ce estremamente affidabili do 5-10-20 milio¬ 
ni di caratteri ciascuno che in dimensioni com¬ 
patte offrono tempi di accesso molto bossi 
(35 ms medio) e uno resistenza agli shock 
sinora impensabile. 

■L'estroibilitò e l'intercambiabilità delle cartuc¬ 
ce aumentano a dismisura le capacità di me¬ 
moria di mossa e rendono possibile lo scam¬ 
bio di dati tra vari personals (IBM, OLIVETTI, 
APPLE, PHILIPS, SPERRY, ecc.). 


MODELLO 

CAPACITÀ IN 
MDYTES 

TEMPO ACCESSO 
MEDIO IN MSEC 

FATTORE 

FORMA 

B105E 

5 

05 

5,25" - 
FULL-SIZE 
MONTAGGIO 
INTERNO 

A110HE 

10 

35 

SOTTOSISTEMA 
A 1 DI5CO 

A210HED 

2x10 

35 

SOTTOSISTEMA 
A 2 DISCHI 

A120HE 

1x20 

35 

SOTTOSISTEMA 
A 1 DISCO 

AE20HE 

2x20 

35 

SOTTOSISTEMA 
A 2 DISCHI 



Senza alcun impegno desidero ricevere: 


□ Documentazione tecnico relativo a: 


□ Visito di un Vs. Funzionario 
Nome e Cognome 


Società/Ente 


Via 


Città 

CAP 

Telefono 



AR 



Telcom srl - 20146 Milano 
Via M. Civitoli, 75 
Tel. 02/4047646-4049046 
Telex 335654 TELCOM I 
Telefax 02/437964 




















i 1 s 




&CW. Dato che valuta un’espressio¬ 
ne, il comando di tempo deve venire 
per ultimo nella lista dei parametri 
(seguendo almeno i parametri di al¬ 
tezza e durata). 

Millenote, infine, permette di spe¬ 
cificare le pause con la durata oppor¬ 
tuna. Il comando &R (dove R sta 
per rest, in inglese pausa) genererà 
un intervallo senza suono di durata 
uguale all’ultima nota suonata. 

Si può esplicitamente specificare 
la durata di una pausa di una semimi¬ 
nima, per esempio, con il comando 
&RQ, e una legatura di una pausa di 
una semibreve con una minima pun¬ 
tata mediante il comando &RWHH. 

Comandi ausiliari 
e sommario principale 

Abbiamo visto così tutti i coman¬ 
di principali. Restano da vedere quat¬ 
tro comandi ausiliari, peraltro molto 
utili. Il primo, &X, reimposta auto¬ 
maticamente tutti i default originali 
(Do centrale, semiminima, legato, 
160 movimenti/min) senza suonare 
di fatto una nota. Il secondo coman¬ 
do, &X[parametri], è esattamente co¬ 
me ogni altro, con la differenza che 
al posto di un parametro d'altezza c’è 
una X. Questo permette di imposta¬ 
re i parametri senza suonare una no¬ 
ta. Per esempio &XQT120:&C:&D 
farà in modo che C (Do) e D (Re) 
suonino come semiminime al tem¬ 
po di 120 movimenti al minuto. 

Gli ultimi due comandi ausiliari 
sono &STOP e &RESTORE (o in 
alternativa &RESUME), vale a dire 
rispettivamente Fermare, Ripristina¬ 
re e Riprendere. 

Nei programmi musicali è utile a- 
vere una possibilità di scelta fra suo¬ 
no e silenzio, e questo si ottiene in¬ 
serendo nei programmi in Applesoft 
le seguenti istruzioni: 


100 PRINT "VUOI IL SUONO? 

(S/N)”;: GET A$ 

120 IF A$ = ”N" THEN &STOP: 
REM DISATTIVA IL SUONO 
SUSSEGUENTE 
140 IF A$ = ”S" THEN &RESTO 
RE: REM RIPRISTINA IL 
SUONO 


Con l'opportuna codificazione nel 
programma si può consentire all'u¬ 
tente di disattivare (&STOP) e di 
riattivare (&RESTORE o &RESU- 
ME) il suono generato da Mille¬ 
note. 


Ecco infine un sommario di tutti i 
comandi disponibili con il program¬ 
ma Millenote: 

1. Il comando generale, compren¬ 


sivo delle opzioni dei parametri, è 
& {[altezza: A-G[#] [!]][R)est]} {dura¬ 
ta: W,H,Q,E,S ,T[.] [’]} [ottava: 1 -6] {L) 
egato] [Smaccato] [P)ortato] [H)old 


Listato 3. Millenote demo 2 


MILLENOTE - DEMO 2 
DI S. SCOTT ZIMMERMAN 
COPYRIGHT (C) 1986 

BY APPLICANDO & 
MICROSPARC, INC. 


PEEK (37403) =169 AND PEEK (38385) = 0 AND PEEK (1014) 
= 84 AND PEEK (1015) = 146 THEN 160: REM CONTROLLA SE "MI 
LLENOTE" E' IN MEMORIA 
140 PRINT CHRS (4 );"BRUN MILLENOTE" 

160 TEXT : HOME : VTAB 2: PRINT "(C) 1986 BY APPLICANDO & MICROSP 
ARC/INC. " 

180 VTAB 6 :AS = " INVENZIONE N. 8 " : HTAB (41 - LEN (A$)) / 2: I 
NVERSE : PRINT A$: NORMAL : PRINT :A$ = "DI JOHANN SEBASTIAN 
BACH": HTAB (41 - LEN (A$)) / 2: PRINT A$ 

200 PRINT : PRINT :A$ = "PROGRAMMATO DA": HTAB (41 - LEN (A$)) / 
2: PRINT A$:A$ = "S. SCOTT ZIMMERMAN": PRINT : HTAB (41 - L 
EN (A$)) / 2: PRINT A$ 

220 PRINT : PRINT :A$ = "CON": HTAB (41 - LEN (A$)) / 2: PRINT A 
$ :A$ = "MILLENOTE": PRINT : HTAB (41 - LEN (A$)) / 
2: INVERSE : PRINT A$: NORMAL 

260 X = 126: VTAB 23: CALL - 868: PRINT "CHE TEMPO (IN MOVIMENTI 
/MIN)? " ; X; : POKE 36, ( PEEK (36) - 3): INPUT "";X$: VTAB 23: 
HTAB 1: CALL - 868 
280 IF X$ = "" THEN 380 
300 X = VAL (X$) 

320 IF X > 255 THEN X = 255 

340 IF X < 61 THEN X = 61 ^ 

360 REM NOTE DI " INVENZIONE N.8 DI BACH": 

380 & RETX : & FE3S : & A4 : & F3': & C< : & -F3': & FÉ4L: & ES : & D : & 

C: & D: & C: & B! : & A: & B! : & A: & G3: REM BATTUTE 1-2 
400 & FES: & A4: & C: & A: & F: & C: & AS5L: & C: & B!: & C: & A: 

& C: & B!: & C: & A: & C: & B! : & C: REM BATTUTE 3-4 
420 & F4: & A5: & G4: & A5: & F4: & A5 : & G4: & A5: & F4: & A5: & 

G4 : & A5: & D4: & F: & E: & F: & D: & F: & E: & F: & D: & F: 

& E: & F: REM BATTUTE 5-6 

440 & BES: & G3: & D4: & B: & F: & D: & GSL: & A5: & G4: & F: & E 

: & F: & E: & D: & C: & D: & C: & B!: REM BATTUTE 7-8 

460 & AES: & DSL: & C: & B: & C: & B: & A: & G3: & A4: & G3: & F: 

& E: & F: & E: & D: & CEL: &CS4: & B: & CES: & EE3L: REM B 
ATTUTE 9-10 


10 REM 

11 REM 

12 REM 

13 REM 

14 REM 

15 REM 

16 REM 
120 IF 


DOS 3.3 


Apple Ile 
Apple Ile 


-f 480 & FES: & C4: & É3: & C4: & D3: & B4: & CQL: & RQ: & : & RE: & 
CES: & E: & C: & G: & C: REM BATTUTE 11-13 
*■500 & CE5L : & BS: & A: & G4: & A5: & G4: & F: & E: & F : & E: & D: 

& C: & B!: & C: & A5: & C4: & A5: & B! 4 : & A5: & C4: & A5: & 

A4: & A5: REM BATTUTE 14-15 

520 & B!E4S: & G3: & B!4: & G3: & D4: & G3: & GEL4: & FS: & E!: & 

D: & E!: & D: & C: & B!: & C: & B!: & A: & GES3: & B! 4 : & D: 

& B!: & G: & D: REM BATTUTE 16-18 
540 & B ! E5S :, & C#4: & B ! 5 : & C#4: & B!5: & C#4: & D: & A: & F: & 

D: & A5: & F4: REM BATTUTE 19-20 

560 & GSL: & F: & G: & B ! 5 : & C4: & B! 5 : & D4: & B! 5 : & E4: & B! 5 

: & C4: & B! 5 : & F4: & E: & F: & A5: & B4: & A5: & C#4: & A5: 

& D4: & A5: & B4: & A5: REM BATTUTE 21-22 
580 & E4: & D: & E: & G: & A: & G: & B: & G: & C#: & G: & A: & G: 

& FEL: & D: & B!ES: & D: & G3: & F4: REM BATTUTE 23-24 


600 & EEL: & C: & AES: & C: & F3: & E ! 4 : & DSL: & F: & E!: & F: & 

D: & F : & E ! : & F : & D : & F : & E ! : & F : & B ! : & D : & C : & D : 
& B!: & D: & C: & D: & B!: & D: & C: & D: REM BATTUTE 25-27 


620 

& G3 : 

: & B ! 4 : 

& A: & B!: 

: & G3 : & B! 4: 

& A: 

& B!: & G3: & B! 4 : 



& A: 
8-29 

& B! : & 

EE3S: & C: 

: & G: & E: & 

B! 4 : & 

G3: REM BATTUTE 

2 

640 

& CS4L: & D: 

& C: & B!: 

: & A: & B!: & 

A: & 

G3 : & F : & G : & F : 



& E! : 

: & DES: 

& GSL: & F: & E: & F: & 

E: & 

D: & C: & D: & C: 

& 


B! : 

REM BATTUTE 30-31 




660 

& A: 

& B! : & 

A: & G2: t 

; FE: & FS3: & 

E: & 

FES: & A: & B!: & 

F 


ET (X 

- 10) : 

& AET (X - 20): & FET (X - 

30) : 

& G2ET (X - 45) : & 

E 


3: & FQL: & RQHQ: REM BATTUTE 32-33 
680 REM FINE DELL'INVENZIONE N.8 DI BACH 
700 VTAB 23: CALL - 868: PRINT "VUOI RIASCOLTARLA? (S/N)" 

720 VTAB 23: HTAB 37: INVERSE : PRINT " "; : & CT5ST255 : & RW: HTA 
B 37: NORMAL : PRINT " ": IF PEEK ( - 16384) < 128 THEN & G 
T4: & RW: IF PEEK ( - 16384) < 128 THEN 720 
740 X = PEEK ( - 16384): POKE - 16368,0 
760 IF X = 211 THEN 260 
780 IF X = 206 THEN END 
800 GOTO 720 


Checksum del listato 3 

NOME FILE: 

MILLENOTE DEMO 2 

TIPO: A 


LUNGHEZZA: 

08BB 

CHECKSUM : 

1E 


24 

















Sette minuti 
, e la chiave 


del Mac Basic 
Club è tua 


Sette minuti possono aprirti la porta 
di un nuovo mondo: quello dei 
programmi scritti da te come ^ 
servono a te, sulla misura 
delle tue esigenze. Sette minuti 
bastano per decidere di entrare 
nel Club di chi sa ottenere dal 
suo Macintosh esattamente 
quello che vuole. Il Mac Basic Club 
ti offre proprio questo: tutorial in 
italiano, routines, trucchi e segreti, 
suggerimenti, idee. In pratica il Club 
offre tutto il supporto che ti è 
necessario per imparare senza 
s fatica il Basic Microsoft. E te lo 
offre gratis se non possiedi ancora il 
Microsoft Basic 2.1. Iscrivendoti al 
Mac Basic Club riceverai infatti, 

_ subito e direttamente 
al tuo indirizzo 
il Microsoft 
Basic 2.1 in 
confezione 
originale 
completa di 
manuale, 
più il primo 
numero del 
bimestrale su dischetto del 
Mac Basic Club. Gli altri cinque dischetti 
ti verranno spediti via via che verranno 
pubblicati. Ma tu pagherai solo il prezzo 
del Microsoft Basic 2.1, e cioè 327.000 
lire (più Iva 9%). Ma anche se possiedi già 
il Basic puoi iscriverti al Mac Basic Club 
in questo caso riceverai solo i sei numeri 
del bimestrale su dischetto del Club, e 
pagherai 160.000 lire (più Iva 9%). 

Mac Basic Club è un'iniziativa 

nQ 


-q - 

basic 
Club. 



Il Microsoft Basic permette di 
programmare in un ambiente 
altamente interattivo, 
sfruttando tutte le potenzialità 
_ di Macintosh: la grafica, 

■ il suono, le finestre, i menù. 

Comprende strutture 
di controllo avanzate come le 
istruzioni PRINT USING, 
IF/THEN/ELSE, WHILE/WEND, ecc. 
In più, rispetto al Microsoft Basic 2.0, 
il Microsoft Basic 2.1 è in pratica 
due volte più veloce. 
Ed è sicuramente il 
linguaggio che più 
rapidamente e più 
facilmente ti farà 
ottenere risultati 
davvero 
professionali. 





MICROSOFT 


ìCaÌcrosoft» 


Saar 



riuh Iscriviti subito. 

e « tuo club. 

Basta com^VorsS M°" ,orte * ’ - - - 

EdUronica Srl, - - - ic 2 .i. 

_ — ^ ^ ^ . KAirroSoU 


ppistfìi 


MICROSOFT. 


I 
1 
I 
1 
I 
I 
I 
I 
I 
I 
I 
I 



Ure compr enslv .•abbonamento 

indirizzo. Desidero *°i° strale dei Mac 

° 5 as« iva è 

q Desidero iattura, i . 


I 

1 

I 

I 

I 

1 

I 

1 

I 

I 

1 

I 


nome 


MAfTlfi 





































UHtHBM 



[durata]} {T)empo [aexpr 24-255]} 
dove ogni parametro di tipo non spe¬ 
cificato va per default a quello speci¬ 
ficato più di recente (o, se non è sta¬ 
to mai specificato, al default origina¬ 
le, vale a dire Do centrale, semimini¬ 
ma, legato, 160 movimenti/minu¬ 
to). 

I vari parametri sono definiti come 
segue: 

a. Le lettere A-G rappresentano le 
otto altezze primarie della scala mu¬ 
sicale. Se è specificato un qualsiasi 
parametro di nota l'altezza deve esse¬ 
re il primo parametro dopo l'&. 

b. Immediatamente dopo la lettera 
dell'altezza un # significa diesis e un 
! significa bemolle. Si può specifica¬ 


re soltanto uno di questi in un singo¬ 
lo comando &. 

c. R significa pausa (in inglese re- 
st). Deve essere il primo parametro 
nel comando &. 

d. Dopo il parametro (o i parame¬ 
tri) di altezza o di pausa, W = intero 
(semibreve), H = metà (minima), Q 
= quarto (semiminima), E = ottavo 
(croma), S = sedicesimo (semicro¬ 
ma), e T = trentaduesimo (biscroma) 
stanno per la durata della nota (le ini¬ 
ziali sono, come si è visto sopra, 
quelle delle parole inglesi whole, 
half, quarter, eighth, sixteenth e thir- 
tysecond). Il parametro di durata, se 
è specificato, deve seguire immedia¬ 
tamente il parametro d'altezza. 


e. Un punto (.) che segue subito il 
parametro di durata modifica la dura¬ 
ta, dando una nota puntata. 

f. Un apostrofo (*) che segue imme¬ 
diatamente il parametro di durata mo¬ 
difica la durata dando una nota di ter¬ 
zina. L'apostrofo deve seguire il pun¬ 
to se sono specificati entrambi. 

g. Un numero intero nell'arco 1-6 
indica l'ottava. Ogni ottava abbrac¬ 
cia le note che cominciano con La 
bemolle e terminano con Sol diesis. 
Per avere le altezze esatte usate sol¬ 
tanto la fascia di ottave 2-5. Il para¬ 
metro di ottava può essere dato in 
qualsiasi punto dopo i parametri di 
altezza e di durata, a meno che non 
sia specificato nessun parametro di 
durata, nel qual caso il numero del¬ 
l'ottava viene enunciato immediata¬ 
mente dopo il parametro di altezza. 

I seguenti comandi, se specificati, de¬ 
vono venire dopo il parametro (o i 
parametri) di altezza e il parametro 
(o i parametri) di durata,, ma non in 
un ordine particolare, salvo che il pa¬ 
rametro di Tempo deve venire per ul¬ 
timo. 

h. Una L imposta il modo durata 
sul legato (nessuna interruzione fra 
le note). S imposta iLmodo sullo 
staccato (la durata del suono è dimez¬ 
zata, e dopo la nota si ha una pausa 
di silenzio uguale alla nuova durata). 
P imposta il modo sul portato (la 
durata è lievemente diminuita con u- 
na breve pausa dopo la nota). I para¬ 
metri S e P si sommano, vale a dire 
se entrambi sono specificati in un'u¬ 
nica nota la durata del suono sarà ac¬ 
corciata da entrambi i comandi, e la 
pausa dopo la nota sarà allungata da 
entrambi. 

i. Una H indica una nota tenuta (os¬ 
sia una fermata). Immediatamente do¬ 
po la H deve essere dato un parame¬ 
tro di durata (W, H, Q, E, S o T, 
con facoltà di punto e/o apostrofo). 
In un’unica nota si può dare un mas¬ 
simo di 116 set di fermate, per quan¬ 
to nella pratica sia raro che se ne co¬ 
difichino più di tre. 

j. Come ultimo parametro specifica¬ 
to T imposta il tempo sul numero 
di movimenti al minuto, uguale al¬ 
l’espressione Applesoft che segue la 
T. L’espressione deve dare un valore 
intero nell'arco compreso fra 24 (il 
tempo più lento) e 255 (il tempo 
più veloce). 

2. Con Millenote sono disponibi¬ 
li anche i comandi ausiliari illustra¬ 
ti qui sotto. Sono chiamati ausiliari 


Listato 4. Millenote effetti sonori 

DOS 3.3 



10 REM — — — — 

11 REM MILLENOTE - EFFETTI SONORI 

12 REM DI S. SCOTT ZIMMERMAN 

13 REM COPYRIGHT (C) 1986 

Apple Ile 

Apple Ile 


14 REM BY APPLICANDO & 

15 REM MICROSPARC, INC. 

16 REM - 


120 TEXT : HOME : VTAB 2: PRINT "(C) 1986 BY APPLICANDO & MICROSP 
ARC,INC.": VTAB 6:A$ - "MILLENOTE - EFFETTI SONORI": HTAB (41 
- LEN (A$>) / 2: INVERSE : PRINT A$: NORMAL 
140 PRINT :A$ = "DI S. SCOTT ZIMMERMAN": HTAB (41 - LEN (A$)) / 
2: PRINT A$ 

160 PRINT CHR$ (4);"BRUN MILLENOTE" 

180 VTAB 17: INVERSE : PRINT "EFFETTI SONORI:": NORMAL 
200 GOSUB 2000: PRINT "FISCHIO (?)": & X: POKE 8,1: FOR I « 240 T 
O 250: POKE 6,252 - I: & : NEXT : & X: & RH: & X: POKE 8,1: F 
OR I = 2 TO 50: POKE 6,1: & : NEXT : GOSUB 1000: IF A$ = "S" 
THEN 200 

220 GOSUB 2000: PRINT "INCONTRO CON IL MOSTRO (?)": & X: FOR I = 

1 TO 10: & CT.3: & C#: NEXT : GOSUB 1000: IF A$ = "S" THEN 22 

0 

240 GOSUB 2000: PRINT "MOVIMENTO ASTRONAVE (?)" : & X: POKE 8,5: F 
OR' L = 1 TO 30: POKE 6,( RND (1) *20+10): & : NEXT : GOSUB 
1000: IF A$ = "S" THEN 240 

260 GOSUB 2000: PRINT "TIC-TAC": & X: FOR I = 1 TO 3: & CT5PST255 

: & RW: & GT4: & RW: NEXT : GOSUB 1000: IF A$ = "S" THEN 260 

280 GOSUB 2000: PRINT "SIMULATORE DI CTRL-G (BIP)": & X: FOR I = 

1 TO 3: & A#E5: & RQ: NEXT : GOSUB 1000: IF A$ = "S" THEN 280 
300 GOSUB 2000: PRINT "SERPENTE (?)": & X: FOR I = 1 TO 50: POKE 
8,1: POKE 6,3: & : NEXT : GOSUB 1000: IF A$ = "S" THEN 300 
320 GOSUB 2000: PRINT "UCCELLINO": & X: FOR I = 1 TO 3: POKE 8,1: 
FOR J = 2 TO 6: POKE 6,J: & : NEXT J: & X: & RQ: NEXT I: GOS 
UB 1000: IF A$ = "S" THEN 320 

340 GOSUB 2000: PRINT "FISCHIO ARBITRO (?)": & X: POKE 8,1: FOR I 
= 1 TO 50: & A6: & A#6: NEXT : GOSUB 1000: IF A$ = "S" THEN 
340 

360 GOSUB 2000: PRINT "FISCHIO ARBITRO PIU 1 FORTE (?)": & X: POKE 
8,1: FOR 1=1 TO 50: & C6: & C#6: NEXT : GOSUB 1000: IF A$ 

= "S" THEN 360 

380 GOSUB 2000: PRINT "SIRENA D’AMBULANZA": & X: FOR I = 1 TO 4 : 

& CQ3: & G2: NEXT : GOSUB 1000: IF A$ = "S" THEN 380 
400 GOSUB 2000: PRINT "'FANFARA 'CARICA'": & GE3PT230: & CE4: & E 
: & GQL: & EE: & GH: GOSUB 1000: IF A$ = "S" THEN 400 
420 GOSUB 2000: PRINT "SQUILLO TELEFONO": & X: POKE 8,6: POKE 6,2 
7: FOR I = 1 TO 30: & : NEXT : GOSUB 1000: IF A$ = "S" THEN 4 
20 

440 GOSUB 2000: PRINT "ELETTRICITÀ' STATICA (CONTATORE GEIGER)": 

& XS2ST255: FOR I = 1 TO 80: POKE 8, RND (1) * 10: & A: NEXT 
: GOSUB 1000: IF A$ = "S" THEN 440 
460 HOME : END 

1000 VTAB 20: HTAB 1: CALI, - 868: PRINT "VUOI RIASCOLTARLO? (S/N 
) ";: GET A$: PRINT A$: RETURN 

2000 VTAB 20: HTAB 1: CALL - 868: RETURN 


Checksum del listato 4 

NOME FILE: 

MILLENOTE EFFETTI SONORI 

TIPO: A 


LUNGHEZZA: 

0585 

CHECKSUM : 

3E 


26 
















Abbiamo già venduto 2 milioni di 
High Precision Data Memories. 



E siamo solo agii inizi. 


High Precision che, trattandosi di un di¬ 
schetto flessibile, dice tutto. 

Precisione per HP Data Memories è il 
risultato di una tecnologia avanzatissi¬ 
ma che si avvale delle ultime novità in 
fatto di materie prime, formulazione 
magnetica, costruzione e sistemi di 
confezione. 

Non c'è da stupirsi, se pensiamo che 
questo marchio di successo ha dietro di 
sè tutta l’esperienza commerciale e tec¬ 
nologica di un’azienda come la MEE. 
HP Data Memories unisce eccezionali 


caratteristiche di chiarezza del segna¬ 
le, alta resistenza del substrato in po¬ 
liestere, lunga durata. 

I numerosissimi test cui viene sottopo¬ 
sto durante il ciclo di fabbricazione ne 
garantiscono prestazioni molto superio¬ 
ri a quelle dettate dai normali standards 
quantitativi. 

Preciso, resistente, affidabile anche 
nelle situazioni più critiche, il dischet¬ 
to HP Data Memories - 
prodotto nei formati 8”, 

5 1/4”, 3 1/2”-ècerti¬ 
ficato 100% error free 


secondo le norme ANSI, ECMA, ISO, 
JIS, IBM, SHUGART. 

Del resto che sia un prodotto di primis¬ 
sima qualità è dimostrato dalla sua in¬ 
credibile diffusione, ben 2.000.000 di 
pezzi venduti in pochissimo tempo. 
Un "dischetto d’oro” in piena regola 
che ha tutte le intenzioni di continuare 
su questa strada fino ad un prossimo 
ancora più ambizioso traguardo. 



s.p.a. ■20144 MHano-Via Boni, 29. 

t.02/498854Uetex324426MEE-ltalia 


MEE 

Parliamone insieme. 



perché non codificano un suono. 

a. Il comando &X reimposta tut¬ 
ti i parametri sui valori di default ori¬ 
ginali, vale a dire Do centrale, semi¬ 
minima, legato, 160 movimenti/mi¬ 
nuto, senza emettere un suono. 

b. Il comando &X[parametri], 
nel quale i parametri possono essere 
di qualsiasi tipo indicato sopra con 
l’eccezione dei parametri di altezza, 
imposta i parametri specificati ma 
non emette alcun suono. 

c. &STOP silenzia tutti i comandi 
& susseguenti. Il programma si 
comporta praticamente come se i co¬ 
mandi & di Millenote non esistes¬ 
sero. 

d. &RESUME o &RESTORE 

causa la ripresa del suono dei coman¬ 
di &. 

3. Per ottenere altezze e durate 
non accessibili dai parametri norma¬ 
li si possono fare inoltre i seguenti 
POKE: 

a. POKE 6,n ove n è un’altezza 
nell’arco 1-255. Maggiore è il valore 
di n minore è l'altezza. Così l'altezza 
più piccola disponibile è data da PO¬ 
KE 6,255:&. State però attenti a 
non includere alcun parametro con il 
comando &, altrimenti il POKE 
risulterà annullato dall’altezza speci- 

b. POKE 249,i : POKE 250J 
dove la durata è uguale a i + j * 
256, nell’arco 1-65535. Più alto è il 
valore di i e j maggiore è la durata. 
Il valore di i, che è il byte di ordine 
basso di un valore di due byte, 
dev'essere un numero dell’arco 1- 
255, e j, il byte di ordine alto, 
dev'essere nell'arco 0-255. 

c. POKE 8,m dove m è il tempo 
nell’arco 1-255. Più alto è il valore 
di m più lento è il tempo. Così PO¬ 
KE 8,1 :& è il tempo più veloce pos¬ 
sibile. In effetti per molte altezze è 
talmente veloce che non sarà emesso 
alcun suono. 

Tanto per dare un’idea dell’arco del¬ 
le durate che è possibile ottenere con 
il POKE del tempo e della durata, di¬ 
ciamo che se si fa POKE 8,1 (il tem¬ 
po più veloce) e POKE 249,1 : PO¬ 
KE 259,0 (la durata più breve) il 
suono (seppur ci sarà) non sarà che 
un debole clic. All’altro estremo se 
si fa POKE 8,255 (il tempo più len¬ 
to) e POKE 249,255 : POKE 
250,255 (la durata massima) e poi si 
suona la nota (& senza alcun parame¬ 
tro) il suono durerà 6 minuti e 50 se¬ 
condi. 


4. Per amplificare il suono della 
musica o degli effetti sonori creati 
con Millenote si può convogliare il 
suono dalla porta d’uscita cassette 
(sul retro dell’Apple Ile) all'amplifi¬ 
catore dell'impianto stereo o aH’in- 
gresso audio del monitor (se il moni¬ 
tor è munito di altoparlante). Sarà 
necessario modificare il programma 
per accedere alla locazione di memo¬ 
ria cassette out (-16352 = $C020) an¬ 
ziché alla locazione dell’altoparlante 
(-16336 = $C030). Per far questo oc¬ 
corrono due POKE: POKE 38269, 
32 e POKE 38295,32. 

Se siete in possesso dell’Apple 
Ile, non occorre alcuna modifica al 
programma e potrete collegare l’in¬ 
gresso del vostro impianto sereo alla 
presa per l'auricolare sistemata vici¬ 
no al regolatore del volume. 

I programmi 
dimostrativi 

Nel listato 2 è visibile un pro¬ 
gramma in Applesoft che dimostra 
la potenza e la flessibilità di Mille¬ 
note. L’esempio musicale è il valzer 
di Musetta da La Bohème di Pucci¬ 
ni. Lo spartito del pezzo è visibile 
nella figura 1. Il brano è stato scel¬ 
to perché ha una grande varietà di no¬ 
te: legato, staccato, portato, abbelli¬ 
menti, note tenute, ritardando, terzi¬ 
ne, pause e via dicendo. 

Si può apprendere parecchio sul 
modo in cui introdurre la musica di 
Millenote nei programmi in Apple¬ 
soft confrontando lo spartito con il 
listato del programma. 

Il listato 3 presenta un program¬ 
ma in Applesoft dell’Inventio Vili di 
Bach, che mostra con quale facilità 
la musica veloce (in questo caso vi¬ 
vace) sia trattata. 

Il listato 4 è una dimostrazione 
di vari effetti sonori possibili con 
Millenote, che, a dire il vero, non è 
stato scritto come programma di ef¬ 
fetti sonori... Ma con un po’ di im¬ 
maginazione e di fortuna si può rea¬ 
lizzare qualche altro effetto interes¬ 
sante da usare nei giochi. 

Carica e 
funzionamento 

Millenote è un programma in As¬ 
sembler (visibile nel listato 1). 
Dopo aver introdotto tutto il codice 
macchina seguendo le istruzioni ri¬ 
portate nella rubrica Per chi comin¬ 
cia, battete BSAVE MILLENOTE, 


A$9200, L$ 400 per salvare su di¬ 
schetto il programma binario. 

Quando fate BRUN MILLENOTE 
accadono tre cose: 

1. Il vettore & a $3F5 (decimale 
1013) è impostato in modo che l’Ap¬ 
plesoft salti alla routine principale 
(MAIN) quando si incontra un &. 

2. HIMEM è impostata sotto la 
routine Millenote per proteggerla dal¬ 
le variabili stringa dell’Applesoft, 
che normalmente occupano quella re¬ 
gione della memoria. 

3. Vengono impostati i valori di 
default e i vari flag sono azzerati. 

La funzione più importante della 
routine principale MAIN è quella di 
richiamare le varie subroutine per 
predisporre i valori della nota (altez¬ 
za, durata e così via) e di richiamare 
poi la routine del suono stessa. 

La prima e principale subroutine 
chiamata da MAIN è PARMSORT, 
che ordina i parametri di input. Par- 
msort e le subroutine che essa chia¬ 
ma usano due importanti routine del¬ 
la ROM Applesoft, CHRGET e 
CHRGOT. 

Entrambe queste routine usano il 
vettore Applesoft TXTPTR, in loca¬ 
zione a $B8 e $B9 (decimali 184 e 
185). TXTPTR punta il carattere o i- 
struzione seguente del programma in 
Applesoft. Così quando si incontra 
un & e il programma salta a Mille¬ 
note si ha che TXTPTR sta puntan¬ 
do il carattere che segue l’&. 

La routine CHRGET, in locazione 
a $00B1 (decimale 177), fa tre cose: 

1. Incrementa TXTPTR. 

2. Carica nell'accumulatore il carat¬ 
tere al quale TXTPTR sta puntando. 

3. Imposta il flag Zero del registro 
di stato del processore se TXTPTR 
sta puntando la fine di una linea, e 
pulisce il flag di Carry se l’accumula¬ 
tore conserva un numero ASCII (0- 
9). 

La routine CHRGOT, in locazio¬ 
ne a $00B7 (decimale 183), svolge 
la stessa funzione di CHRGET ma 
non incrementa TXTPTR; in altre 
parole CHRGOT carica nell'accumu¬ 
latore il carattere che TXTPTR sta 
già puntando. 

Le subroutine di Millenote utiliz¬ 
zano CHRGET e CHRGOT per rice¬ 
vere ciascun parametro, un parame¬ 
tro alla volta, e poi modificano op¬ 
portunamente le variabili (altezza, 
durata, ottava e via dicendo) o impo¬ 
stano i vari flag (di staccato, di pau¬ 
sa e così via). 

Un'altra routine della ROM Apple- 


28 





soft utilizzata è GETBYTC, in loca¬ 
zione a $E6F5 (decimale 59125). 
Sua funzione generale è quella di va¬ 
lutare l’espressione Applesoft punta¬ 
ta da TXTPTR. GETBYTC è usata 
in PARMSORT dopo che si è incon¬ 
trata una T, per valutare l’espressio¬ 
ne che sta per il tempo. 

Il cuore di Millenote è la subrouti¬ 
ne Note, che suona la nota codificata 
nella lista del parametro &. Note 
dapprima moltiplica la variabile di 
durata (DURVAR) per 16 allo scopo 
di far posto alle note più lunghe, e 
poi moltiplica quel valore per il tem¬ 
po. 

Il risultato ultimo è che DUR¬ 
VAR è un numero di 24 bit, in gra¬ 
do di eguagliare qualsiasi valore com¬ 
preso fra 0 e 16.777.215. E' questa 
la ragione dell’ampia gamma di dura¬ 
te possibili. Il loop sonoro fa sem¬ 
pre i passaggi per DURVAR, sia o 
no commutato l’altoparlante. E' la 
variabile di altezza PITCH a dire 
quanto spesso l'altoparlante debba es¬ 
sere commutato durante ogni passag¬ 
gio, determinando così la frequenza 
(altezza) del suono. Così altezza e du¬ 
rata sono tenute indipendenti, e vie¬ 
ne perciò notevolmente semplificata 
la stima delle variabili occorrenti 
per la nota desiderata. 

I limiti 

dei programma 

Nonostante le altezze dei suoni sia¬ 
no per quanto possibile conformi al- 
l'algoritmo della routine del suono 
ci sono nel programma alcuni limiti 
imposti dalla variabile di frequenza a 
8 bit. Alcune delle altezze daranno fa¬ 
stidio al musicista dal fine orecchio. 
Ma per il resto la musica codificata 
come parte di un programma in Ap¬ 
plesoft Basic avrà un bel suono. 

Inoltre, la variabile del tempo è 
molto precisa, ma il programma in 
Applesoft può influire sul tempo in¬ 
tercorrente fra le note. Ovviamente 
se si mettono varie linee di codice 
Basic o istruzioni REM fra le chia¬ 
mate degli & ci sarà un intervallo di 
tempo fra le note. Per questa stessa 
ragione sedici differenti note di un se¬ 
dicesimo (semicrome) non avranno e- 
sattamente la stessa durata di una no¬ 
ta intera (semibreve), a causa del 
tempo di overhead del Basic. Tutta¬ 
via la differenza sarà molto lieve, e 
il novantotto per cento di noi non la 
noterà affatto. 

Esiste ancora un inconveniente: 


supponiamo che si voglia far suona¬ 
re a Millenote una nota di un trenta¬ 
duesimo (biscroma) all'altezza La. 
Battiamo il comando &AT. Ma ab¬ 
biamo inavvertitamente scritto AT, 
che è una parola riservata dell'Apple¬ 
soft! Dato che le parole riservate so¬ 
no simboleggiate con valori di un 
byte, il programma non interpreta 
nel modo giusto i risultati. Ci sono 
altre due parole riservate dell'Apple¬ 
soft che costituiscono difficoltà po¬ 
tenziali, GET e DEL. Si utilizzereb¬ 
be il comando &GET160 per suona¬ 
re un Sol di un ottavo (croma) a un 
tempo di 160 movimenti al minuto, 
e il comando &DEL per suonare una 
croma Re in legato, ma non si otter¬ 
rebbe il risultato voluto. Così pure 
il comando &GR non suonerà la no¬ 
ta Sol seguita da una pausa. 

Questi inconvenienti possono esse¬ 
re eliminati nel modo seguente: inve¬ 
ce del comando &AT, usate il co¬ 
mando &XT:&A. Avrete lo stesso 
risultato, senza adoperare una parola 
riservata. Invece di &GET160 usate 
&XET160:&G, e invece di &DEL 
&XEL:&D. 

Esistono diverse caratteristiche mu¬ 
sicali che è difficile codificare quan¬ 
do si adopera Millenote. Per esem¬ 
pio il portamento, il trillo, il mor¬ 
dente, il gruppetto, le note con dop¬ 
pio punto e via dicendo sono tutte 
cose difficili, ma non impossibili, 
da generare. 

Due serie limitazioni sono invece 
la mancanza di elementi dinamici 
musicali come il piano, il forte, il 
crescendo (graduale aumento di inten¬ 
sità) e il diminuendo (graduale dimi¬ 
nuzione di intensità), e la mancanza 
di voci multiple (si ottiene solo un 
suono alla volta). Sono reperibili in 
commercio programmi che hanno 
qualcuna di queste capacità, ma così 
si perde la facilità d'uso, che è il pun¬ 
to forte di Millenote. 

Chi fosse interessato ad apportare 
qualche modifica al programma, 
troverà sul dischetto del Disk 
Service il disassemblato del listato 
1. Le sue dimensioni ne hanno 
impedito invece la pubblicazione in 
queste pagine. 


Questo programma è disponibile 
su dischetto. L’elenco, i prezzi 
e le modalità d’ordine di questo 
e degli altri dischetti disponibili 
sono riportati nella rubrica 
Disk Service. 

^_ J 


®ByNibble e Applicando 


Dai vostri file di testo 
otteniamo velocemente la 
fotocomposizione 

Anche da Macintosh® in 
“Modo Grafico” è 
possibile miscelare il 
testo con figure, grafici, 
istogrammi... ottenendo 
un risultato di alta qualità 
grazie alla nuova 
fotocompositrice con 
risoluzione di ben 
2540 linee/pollice 

Altrettanto rapidamente 
provvediamo alla stampa 
dei vostri manuali, libri, 
cataloghi, listini, eco. 



viappìcinì 

Tecnologie d’avanguardia 
per stampati di qualità e grandi tirature 


Bruno Viappiani spa 

Milano, Viale Argonne 28 
tei. 02/73.84.341 
telex 325421 VI APPI-I 


29 













































Applicando ha un nuove 


annuale con disco 
programmi per Macintosh 
prevede 10 numeri di Applicando, 
ognuno corredato di un dischetto 
da 3 pollici e 
1/2 su cui sono 

registrati tutti ì programmi per 
Macintosh pubblicati sulla rivista. 

Inoltre sono compresi nel prezzo 
dell'abbonamento l'ultima 
edizione delle Pagine 
del software e 
dell'hardware 
per Apple e un 
portadischetti. 


Abbonamento tradizionale con dono? 
Abbonamento biennale con supersconto? 

Oppure la nuovissima formula 
rivista con dischetto, per non avere più 
problemi di digitazione? 
Per tutti, comunque, tanti 
programmi, notizie, consigli e... 















presente... 


L'abbonamento annuale con disco 
programmi per Apple II 
prevede 10 nùmeri di Applicando, 
ognuno corredato con un dischetto 
da 5 pollici e 1/4 su cui sono 
registrati tutti i programmi per Apple II 
pubblicati sulla rivista. 

Inoltre sono compresi nel prezzo 
dell'abbonamento l'ultima edizione 
delle Pagine del software e dell'hardware 

per Apple e un 
portadischetti. 


disKf 


Compilare e spedire 
Editronica srl, Corso Monforte 39,20122 Milano. 


Il programma mostrato nel listato 
indica l'uso di questa tecnica. 

Prima genera un finto menu, poi 
ncia l’ON BREAK GOSUB e 
REAK ON per intercettare il co¬ 
lando di arresto. Un loop infinito 
tende il break. Uno dei motivi per 
luali questa routine risulta molto u- 
!e nei lavori di programmazione è 
he tutto quanto c'è sullo schermo 
iene mantenuto invariato fino allo 


finito di esaminare il display basta 
un tocco di mouse per riavere i me¬ 
nu originali e il listato Basic, pron¬ 
to per le correzioni. Un veloce pro¬ 
memoria: la finestra del listato può 
essere espansa fino alle dimensioni 
massime dello schermo con un dop¬ 
pio click sulla barra del titolo. E' 
spiegato nel manuale, ma senza mol¬ 
ta evidenza, e sono in pochi a sfrutta¬ 
re questa comoda possibilità. 


Listato 1. Menu reset 


'Menu Reset 

'MS Basic 2.0 o 2.1 - Binario e Decimale 
CLS 

'Crea i menu 

MENU 1,0,1,"Prova Menu" 

MENU 1,1,1,"Elemento 1" 

MENU 1,2,1,"Elemento 2" 

MENU 1,3,1,"Elemento 3" 

MENU 1,4,1,"Elemento 4" 

MENU 2,0,0,"" 

MENU 3,0,0,"" 

MENU 4,0,0,"" 

MENU 5,0,0,"" 

LOCATE 7,17 

PRINT "Usa <Control> <Shift> punto per uscire." 

ON BREAK GOSUB uscita 
BREAK ON 

ripeti : 

GOTO ripeti 

uscita : 

BREAK OFF 
BEEP 

WINDOW 4,"", (360,21)-(508, 44),3 
MOVETO 10,15 

PRINT "Programma arrestato"; 

pippo=MOUSE(0) 'aggiorna la posizione del mouse 

x=MOUSE(l) 'legge la posizione X del mouse 

WHILE x=MOUSE(1)* 'attende il movimento del mouse 
pippo=MOUSE(0) 

WEND 

WINDOW CLOSE 4 
MENU RESET 
LIST 
END 


© By Nibble e Applicando 

33 








...ma anche un passato. 


f Per ordinare gii arretrati compila il N i 
tagllaAMo^ellapaglna^precedente_ J 



Lire 7.000 • Sa- 
e le malattie e re- 
he • Come far parla- 
po personalizzato 
del cielo natale • 
non perdere o- 
one-liner-Ba- 
collegamento diretto 
razione testo e l'am- 
ontrollare il valore di 
duare gli errori • Ecco 
ull'uso della grafica 
• Speciale Appli- 
n equilibrio • Macin- 
del mese. 


5 - Lire 7.000 • 

arredare la vo- 
ne direttamente sul 
a corsa d'auto stile 
n modo per accede¬ 
tene di stampa by 
mma ‘Controllo di- 
one-liner-^er Ap- 
foglio elettronico in¬ 
ala management « 


3 - settembre/ottobre 1983 - Lire 
7.000 • Un programma di Data Base ac¬ 
cessibile a tutti • Ecco Logo in italiano • U- 
na scheda e una telecamera e il tuo Apple 
vede • Etichette spiritose o bizzarre • Pic¬ 
coli editori, club e associazioni possono rag¬ 
giungere soci e abbonati facilmente • Equo 
canone con VisiCalc • Una routine e la E- 
pson M 80 stampa i grafici • Seconda pun¬ 
tata del corso di Basic • Con un uso accor¬ 
to del WPL ecco pronto un documento di 
più pagine, personalizzato, con decine di o- 
pzioni diverse • Dadi e punti (gioco). 

4 - novembre/dicembre 1983 - Lire 
7.000 • Tre schede, una tastiera e un po' 
di software: il computer diventa un'intera 
orchestra • Pianoforte, organo e violino in 
Pascal • Per imparare a leggere più veloce¬ 
mente (e fare esercizio di inglese) • Elogio 
del VisiDex • Grazie Lisa: cos'è e a chi può 
servire il rivoluzionario personal Apple • 

» ùndici • Per chi ha dischetti del Si- 
ascal, ecco una rassegna delle 
possibilità offerte e dei comandi a disposi¬ 
zione • Dedalus • Terza puntata del corso 
Basic • Guida ragionata dei software in 
commercio per la gestione condominiale • 
Una numeric keypad fatta solo di so¬ 
ftware. 

5 - gennaio/febbraio 1984 - Lire 
7.000 • La tecnologia del mouse applica¬ 
ta all'Apple II • In memoria i vostri impegni 
di un anno intero • Contabilità semplificata 
• Battaglia di cannoni • Investor, uno dei mi- 
pliori programmi che fornisce in tempo rea- 


dàT'pòuicfe 
1/2 su cui sono 

registrati tutti 1 programmi per 
Macintosh pubblicati sulla rivista. 
Inoltre sono compresi nel prezzo 
dell'abbonamento l’ultima 
edizione delle Pagine 
del software e 
dell'hardware 
per Apple e un 
portadischetti. 


più esperti • Rotazione e traslazione delle fi¬ 
gure piane e somma delle forze parallele • 
Gerarchia, sequenza e ombra per visualiz¬ 
zare il parentado: quinto appuntamento 
con il Pascal • Come ottenere grandi risul¬ 
tati nella grafica ad alta risoluzione utiliz¬ 
zando un Apple II e un TV color • Una sem¬ 
plice routine per disporre sempre della data 
memorinata • Macintosh: Guida al- 
l’Ms-Basic. 

10 - novembre 1984 - Lire 7.000 • 

Una guida per entrare con l'Apple nelle reti 
nazionale e internazionale • L'Apple Ile sti¬ 
la una graduatoria delle autovetture d'epo¬ 
ca • Come gestire tre attività professiona¬ 
li diverse con un Apple • Niente paura se i- 
nawertitamente battete New o Fp! • Dos: 
un programma per ritrovare sempre i dati 
che sembrano scomparsi • L'ottava punta¬ 
ta di Applesoft: come mantenere allineate 
le righe • Differenze tra Integer e Appleso¬ 
ft e language card • Parametri, procedure 
e funzioni nella sesta puntata del Pascal ■ 
Appliscuola: rette nel piano cartesiano, e- 
quazioni e calcolo del coefficiente di corre la- 
zione • Macintosh: Computerizzate il li¬ 
bro cassa con il Mac. 

11 - dicembre 1984 - Lire 7.000 • U- 

na banca dati per avere sotto controllo un 
articolo, il suo numero di pagina, la rivista 
su cui è stato pubblicato • Per recuperare 
un file cancellato accidentalmente • Tutti i 
trucchi per personalizzare l'Hello o per pro¬ 
teggere i listati da occhi indiscreti • L'Apple 
sulla scrivania: perché non lasciarvi un 


Mac • Magic e File Vision • Lt* parade 
dei mese. 

16 - maggio 1985 - Ure 7.000 • Un 

sistema di data base nutrizionale per per¬ 
sonalizzare una dieta bilanciata, a lunga o 
a breve scadenza • Corso AppleWorks: co¬ 
me farsi un'agenda telefonica • Pompieri: 
un gioco d'azione e abilità • Un programma 
capace di trasformare l'Apple II in un fede¬ 
le e preciso timer • Una tavola di disegno 
per emulare i più potenti programmi di 
CAD/CAM • Come scrivere un program¬ 
ma compiuto su una linea sola. Ecco i primi 
venti one-liner • Una utility che facilita il la¬ 
voro di correzione di un listato, rendendone 
più comoda la lettura • Macintosh: Jazz 
• Hit parade del mese. 

17 - giugno 1985 - Lire 7.000 • Le 

principali nozioni, un dizionario nautico e 
due simulatori di regate per entrare nel 
mondo della vela • Un programma che tra¬ 
sforma l'Apple in una sofisticata calcolatri¬ 
ce RPN • Una piantina per pianificare qua¬ 
lunque itinerario stradale americano tra 
ben 171 città diverse • Un uragano si sca¬ 
tena sulla città: riuscirete a trovare rifu¬ 
gio? • In AppleWorks la gestione di un ne¬ 
gozio • Un programma per eseguire analisi 
ai carattere statistico con la possibilità di 
chiedere previsioni • Sparate a vista, ma 
attenti a non essere colpiti! • Continua la 
serie degli One-liner, i programmi su una li¬ 
nea sola • Macintosh: Smooth Talker • 
Hit parade del mese. 

1985 - Lire 

r Apple di Trivia, il 
ezzo mondo • Con- 
rks con le funzioni 
ìa utility per perso- 
• Un program- 
ento dei propri biori- 
r sapere i consumi 
in calcoli e fogliet- 
l’andamento di un 
Poche linee di pro¬ 
ritte perfettamente 
mpante ■ ProDOS: 


Lire 7.000 

quando sono 
Digger e Clau- 
er marziani soprav- 
ifisti il secondo-Tut- 
gamento in rete per 
*ti dello studio lega- 
avvocati scritto da 
in memoria un pro¬ 
di sopra di un codi- 
mouse:accop- 
cassa-ma- 
ne-liner ■ Inizia una 
ella grafica ad altis- 
acihtosh: Microso- 
che vale davvero 
iornatissimo catalo- 


Prima puntata di un corso di programma¬ 
zione avanzata in Basic • Terzo articolo 
sulla doppia HhRes: le figure a blocchi • 
Macintosh: hard disk a confronto • Con¬ 
tabilità generale o forfettaria: 3 pacchetti 
a confronto • Hit parade del mese. 

22 - dicembre 1985/gennaio 1986 
- Lire 7.000 • Una rassegna completa 
dei tipi di stampante, con Te caratteristi¬ 
che tecniche e le prestazioni, e dei relativi 
accessori e una tabella comparativa di 
trenta macchine provate direttamente • 
Memodesk: non la solita agenda elettroni¬ 
ca ma un calendario intelligente da scriva¬ 
nia • BlackJack • Due programmi per gli 
studi dentistici • Continua il corso ai pro¬ 
grammazione avanzata in Basic • Effetti 
speciali: Spinnerconsente lo scorrimento o- 
rizzontale di una stringa • Dieci one-liner • 
Calendario perpetuo dal 1753 in poi per Ap¬ 
ple e Mac ■ Quarta puntata di grafica: ani¬ 
mazione • Appliscuola: il numero di Avoga- 
dro • Macintosh: stampare un catalogo 
professionale di alta qualità a costi Conte¬ 
nuti-Hit parade con tantissimi nuovi pro¬ 
grammi. 

23 ■ febbraio 1986 - Lire 7.000 • 

Speciale editoria: Macintosh, Apple II, La¬ 
serWriter e tutto il software necessario per 
creare un centro stampa autonomo • Co¬ 
me programmare il mouse dell'Apple II • 
Guerre stellari • Harmony ■ Come far scor¬ 
rere 18 immagini sul video ■ Grafica: scorri¬ 
mento orizzontale di una stringa sul video • 
Corso avanzato di Basic (3) • Sette one-li¬ 
ner ■ Scuola: resoconto su Pisa • Funzioni 
e grafici tridimensionali • La tavola degli e- 
lementi chimici • Macintosh: la compatibi¬ 
lità Mac-IBM • Tutto sul CFS • L'hit-para- 
de del mese. 

24 ■ marzo 1986 - Lire 7.000 • Spe¬ 
ciale architetti e ingegneri: tanto software 
per risolvere al computer i problemi di com¬ 
puto e disegno • Executive Cardfile: un ar¬ 
chivio intelligente, organizzato in più sche¬ 
dari • Screen dump a 80 colonne in ogni mo¬ 
mento della programmazione • Apple Mae¬ 
stro insegna a comporre musica anche a- 
gli stonati, e senza fatica • A che ora na¬ 
scono i vostri file? Senza acquistare sche¬ 
de software, chiedetelo al programma Ora 
e data • Archiviare con il mouse, sull’Apple 
II: con Ped-one • Grafica: lo scorrimento 
verticale • Un'agenda elettronica che com¬ 
pone anche il numero • Appliscuola: disegni 
prospettici con rimozione delle parti nasco¬ 
ste e un trivia, per tutte le materie, da im¬ 
postarsi a piacere • Macintosh: guida al¬ 
l'acquisto del database giusto • Macnews 

• Tutti i linguaggi per la programmazione • 
Grafici: un programma che sa crearli tutti 

25 ■ aprile 1986 - Lire 7.000 • Spe¬ 
ciale comunicazioni: modem e banche dati 

• Chart Manager: programma professiona¬ 
le per la gestione dei dati e la restituzione 
grafica in curve, barre e torte • Apple Che- 
cker: controlla gli errori di copiatura dei 
listati- Grafica: (a logica di programmazio¬ 
ne in doppia alta risoluzione • Buffer di 
stampa: ricaviamolo dall'Apple • Oneliners 

• Appliscuola: variazioni di velocità in funzio¬ 
ne di concentrazione dei reagenti e tempe¬ 
ratura • Macintosh: ilBernoulli Box, che 
archivia su cartuccia • Macnews • Una da¬ 
tabase veloce, versatile e personalizzato 
da una potente struttura a schede. 

26 ■ maggio 1986 ■ Lire 7.000 Spe¬ 
ciale: gli spreadsheet più potenti per Apple 
Il e Mac • Meandro: un adventure tutto i- 
taliano • Grafica: altri segreti sull'animazio¬ 
ne in doppia alta risoluzione • Appliscuola: 
per risolvere sistemi di equazioni lineari • 
Ants! Il terrore, con le sembianze di 
gigantesche formiche, viene dal giardino • 
Oneliners • Quale sarà il futuro di Apple II? 
Un'intervista con John Sculley e molte novi¬ 
tà da Cupertino • Macintosh: mettere in 
rete Sunol, il disk server piccolo e potente • 
Mac+//: un programma che simula su 
Mac il video Applesoft? Certo, per utilizza¬ 
re ancora tutta la biblioteca programmi 
del II • Windowd Toolbox, perché ogni pro¬ 
grammatore vorrebbe poter modificare le 
finestre del toolbox • Bioritmi • Macnews. 








Se, correggendo un programma, date il comando di break (<Command>.), 
vi ritrovate nella finestra di uscita i vecchi menu. E allora attivate la finestra 
dei comandi diretti, resettate il menu e date il <Command> L... 
Invece c'è un modo molto più rapido. 


Se il menu si 
resetta da sé 


L'ambiente di lavoro dell'MS Ba¬ 
sic, con i suoi comandi TRACE, il 
potente editor, le finestre separate 
per l'output, per il listato e per i co¬ 
mandi diretti, è uno tra i più attraen¬ 
ti e sofisticati in assoluto. Nono¬ 
stante ciò correggere un programma 
che utilizza menu personali può crea¬ 
re una serie di problemi che mai si 
verificano con i classici interpreti 
Basic. Per esempio quando si dà il 
comando di break (<Command> . ) 
può capitare di trovarsi con la fine¬ 
stra di uscita adomata dei menu del- 
l'appena defunto programma. In que¬ 
sto caso per ottenere la finestra del li¬ 
stato dovete attivare la finestra dei 
comandi diretti, battere MENU RE¬ 
SET, richiamare il listato dal menu 
corrispondente o battere cComman- 
d> L. 

Abbiamo attraversato questa se¬ 
quenza di operazioni molte volte. 

Una miniroutine 
per fare prima 

Per evitare di doverlo fare ancora 
ecco la subroutine Uscita, generata 
dal listato 1. Per attivarla si usano 
le funzioni ON BREAK GOSUB e 
BREAK ON, per intercettare il co¬ 
mando di break. Quando quest'ulti¬ 
mo viene dato ecco cosa accade: 

1) Si esegue BREAK OFF nel caso 
si voglia dare un secondo (e vero) 
break, se necessario. 

2) Si simula uno STOP, con un 
BEEP, e una nuova finestra (numero 
4) è aperta nell'angolo in alto a de¬ 
stra dello schermo per annunciare 
che lo stop è avvenuto. 

3) Un loop determina se il mouse è 
stato mosso. Finché il mouse è im¬ 
mobile lo schermo non subisce alte¬ 
razioni. Questo è esattamente identi¬ 


co a quello che si ottiene con il co¬ 
mando STOP. 

4) Si muove il mouse: allora viene 
rimossa la finestra 4, si resettano i 
menu, si attiva la finestra del li¬ 
stato. 

Il programma mostrato nel listato 
1 indica l'uso di questa tecnica. 

Prima genera un finto menu, poi 
lancia l’ON BREAK GOSUB e 
BREAK ON per intercettare il co¬ 
mando di arresto. Un loop infinito 
attende il break. Uno dei motivi per 
i quali questa routine risulta molto u- 
tile nei lavori di programmazione è 
che tutto quanto c'è sullo schermo 
viene mantenuto invariato fino allo 


Listato 1. Menu reset 


□□□□□□□□□□□□□□a 

mnaaaaaaaaaaaacu 

□□□□□□□□□□□□□□CU 
□ Cdd- —□□□ 




spostamento del mouse. Quando si è 
finito di esaminare il display basta 
un tocco di mouse per riavere i me¬ 
nu originali e il listato Basic, pron¬ 
to per le correzioni. Un veloce pro¬ 
memoria: la finestra del listato può 
essere espansa fino alle dimensioni 
massime dello schermo con un dop¬ 
pio click sulla barra del titolo. E' 
spiegato nel manuale, ma senza mol¬ 
ta evidenza, e sono in pochi a sfrutta¬ 
re questa comoda possibilità. 


'Menu Reset 

'MS Basic 2.0 o 2.1 


Binario e Decimale 


CLS 

'Crea i menu 

MENU 1,0,1,"Prova Menu" 

MENU 1,1,1,"Elemento 1" 

MENU 1,2,1,"Elemento 2" 

MENU 1,3,1,"Elemento 3" 

MENU 1,4,1,"Elemento 4" 

MENU 2,0,0,"" 

MENU 3,0,0,"" 

MENU 4,0,0,"" 

MENU 5,0,0,"" 

LOCATE 7,17 

PRINT "Usa <Control> <Shift> punto per uscire." 
ON BREAK GOSUB uscita 
BREAK ON 

ripeti : 

GOTO ripeti 

uscita : 

BREAK OFF 
BEEP 

WINDOW 4,"", (360,21)-(508, 44),3 
MOVETO 10,15 

PRINT "Programma arrestato"; 


pippo=MOUSE(0) 
x=MOUSE(1) 

WHILE x=MOUSE(1) 
pippo=MOUSE(0) 
WEND 

WINDOW CLOSE 4 
MENU RESET 
LIST 
END 


'aggiorna la posizione del mouse 
'legge la posizione X del mouse 
'attende il movimento del mouse 


©ByNibblee 


33 






































AST 


msma 


Conoscere le stelle significa dedicare intere notti all'affascinante fatica 
del telescopio. Per conoscere poi il cielo da un solo punto di vista. 

Con questo programma potete osservarlo da qualsiasi punto dell'emisfero 
nord e potete additare qualsiasi stella: il programma ve ne dirà il nome. 


. A che punto 
è la notte 



Per un astronomo dilettante il tem¬ 
po passato a scrutare in un telesco¬ 
pio non finisce mai: sono necessarie 
innumerevoli notti, d’estate e d'in¬ 
verno, per imparare a percorrere le 
vie del cielo. I cartelli stradali del cie¬ 
lo notturno sono le costellazioni. 
Non ci vuole molto tempo per impa¬ 
rare che le due stelle^raffiguranti le 
ruote posteriori del Gran Carro pun¬ 
tano verso la stella poltre, e che le 
tre stelle del timone puntano verso 
Arturo, una stella molto luminosa, 
di prima magnitudine. 

Il passo successivo consiste nel-* 
rapprendere i nomi delle altre stelle 


• • 


• 

di grande visibilità e la loro posi- 
• zione. Nella maggior parte delle 
grandi città è possibile recarsi a un 
planetario per vedere le stelle proiet¬ 
tate sul soffitto di una gigantesca cu¬ 
pola. I meccanismi di un planetario 
sono'oltremodo complicati e costo¬ 
si, e riescono a spostare il punto di 
osservazione in qualsiasi luogo della 
superficie terrestre, andare avanti e 
indietro nel tempo e individuare le 
varie stelle. Con Planetario, un pro¬ 
gramma didattico per l'astronomo 
principiante, si può compiere la 
maggior parte di queste funzioni uti¬ 
lizzando il display dell’Apple. 





• • 

Come si usa 
il programma * 

Per avviare il programma battete 
RUN PLANETARIO. 

Dopo il display iniziale il‘pro¬ 
gramma carica la sua tavola delle 
stelle e vi chiede se volete ripristina¬ 
re un vecchio impianto. • 

Se rispondete S, chiede un nome 
di file e voi potete caricare un set di 
#dati comprendente ora e coordinate di 
una precedente esecuzione. 

Questo vi mette in grado di realiz¬ 
zare a poco a poco un atlante stella¬ 
re. Se rispondete N il computer 




mmmm 

* • 


34 




vi chiede le informazioni occorrenti 
per creare una carta stellare per la lo¬ 
calità e la data specifiche. 

Facciamo una prova a titolo d’e¬ 
sempio. Anzitutto dovete indicare la 
longitudine e la latitudine, utiliz¬ 
zando la tavola pubblicata qui sotto. 

Il programma chiede: 


LONGITUDINE (GRADI = -180 A 
180): 


Introducete la longitudine in gradi 
e premete <RETURN>. Poi introdu¬ 
cete allo stesso modo il numero dei 
primi. Alla richiesta: 


LATITUDINE (0 A 90): 


introducete la vostra latitudine in gra¬ 
di e premete <RETURN>. Il pro¬ 
gramma funzionerà solo per l'emisfe¬ 
ro boreale, e quindi non sono am¬ 
messi valori negativi. La domanda 
successiva è: 


DATA (MESE = 1 A 12): 


Introducete il mese e premete <RE- 
TURN>, quindi il giorno e premete 
<RETURN>. Poi è la volta dell’ora 
solare (se si è in epoca di ora legale 
dovete prima fare la conversione in 
ora solare): 


ORA (HR = 0 A 23): 


Usate il sistema orario di 24 ore, 
in cui la mezzanotte è indicata con 0 
ore e si aggiunge 12 a tutte le ore 
pomeridiane. Dopo aver introdotto 
l’ora introducete i minuti. Infine indi¬ 
cate l’orizzonte che volete osservare: 

ORIZZONTE (N = NORD, S = 
SUD): 


Il programma può visualizzare le 
stelle o sopra l’orizzonte settentriona¬ 
le o sopra quello meridionale. Intro¬ 
ducete la vostra scelta premendo ri¬ 
spettivamente N o S. 

La volta celeste 
sullo schermo 

Quando avete immesso tutte que¬ 
ste informazioni lo schermo viene 
ripulito e viene disegnata un’immagi¬ 
ne in alta risoluzione del cielo corri¬ 
spondente alla data, all’ora e al luo¬ 
go che avete scelto (figure 2 e 3). 
Il cielo notturno è circondato da una 
linea di delimitazione. Alla sommità 
dello schermo c'è lo zenit, che è il 
punto del cielo situato sulla vertica¬ 
le di osservazione. La base dello 
schermo è l’orizzonte. I lati destro e 
sinistro dello schermo sono l’est e 
l'ovest, a seconda dell'orizzonte da 
voi scelto. 

Tutte le stelle fino alla magnitudi¬ 
ne tre sono viste nelle loro vere posi¬ 
zioni relative. In aggiunta vengono 
mostrate alcune stelle di magnitudi¬ 
ne maggiore per rendere più ricono¬ 
scibili certe costellazioni. Sono uti¬ 
lizzati quattro diversi simboli (un 
rombo, un grande segno di più, un 
piccolo segno di più e un punto) per 
rappresentare diverse fasce di magni¬ 
tudine. 

Alla base dello schermo Hi-Res si 
trovano tre righe che vi dicono la da¬ 
ta, la posizione (longitudine e latitu¬ 
dine) e l'ora siderale. La riga più in 
basso vi dice quali siano i comandi 
validi. L'orologio dell’ora siderale 
parte e cammina fintanto che non in¬ 
troducete un parametro nuovo. Ogni 
mezz'ora lo schermo viene pulito e 
le posizioni delle stelle sono aggior¬ 
nate, di modo che esse danno l'im¬ 


pressione di spostarsi attraverso il 
cielo come fanno nel cielo reale; po¬ 
tete disabilitare la pulitura dello 
schermo selezionando il modo di vi¬ 
sualizzazione continua nel menù 
principale. 

Se avete selezionato l’orizzonte set¬ 
tentrionale vedrete che le stelle non 
si spostano seguendo un cammino 
da est a ovest: sembra invece che gi¬ 
rino in cerchio attorno a un punto 
nel mezzo dello schermo. Questo 
punto è il polo celeste nord, che è 
molto vicino alla stella polare. 

I tre comandi disponibili sono Tro¬ 
va, Nome ed <ESC>ape. Trova e 
Nome vengono descritti più avanti, 
<ESC> vi porta al menù principale. 
Se premete accidentalmente <ESC> 
potete ripristinare il display delle 
stelle, senza dover perdere tempo per 
un ricalcolo, premendo nuovamente 
<ESC> prima di fare una qualsiasi 
scelta sul menù. 

Come cambiare 
i parametri 

Arriviamo così all’autentica forza 
del Planetario. Se volete vedere 
quale aspetto ha il cielo stellato 
visto da un’altra località, oppure in 
un’altra ora, non c'è alcun problema. 
Per cambiare latitudine e longitudine 
vi basta premere <ESC> e seleziona¬ 
re la voce 2 del menù (figura 1). 

Anche se le due località sono nel¬ 
lo stesso fuso orario, possono 
trovarsi a longitudini differenti e le 
loro ore siderali possono di conse¬ 
guenza essere diverse anche se le lo¬ 
ro ore medie sono identiche. Pertan¬ 
to il programma vi chiede di reintro¬ 
durre l’ora ogni volta che cambiate 
la longitudine. 

Dato che il display dell’ora è in o- 


| Prov. 

Long. 

Lat. 

Prov. 

Long. 

Lat. 

Prov. 

Long. 

Lai 

Prov. 

Long. 

Lat. 

Prov. 

Long. 

Lat. 

Prov. 

Long. 

Lat 

AG 

-13.3 

37 

BZ 

-11.15 

46 

FO 

-12 

44 

MS 

-10 

44 

PZ 

-15.45 

40 

TE 

-13.3 

42 

AL 

- 8.3 

44 

CA 

-9 

39 

FR 

-13.15 

41 

MT 

-16.3 

40 

RA 

-12 

44 

TN 

-11 

46 

AN 

-13.3 

43 

CB 

-14.3 

41 

GE 

-8.45 

44 

NA 

-14.15 

40 

RC 

-15.3 

38 

TO 

-7.3 

45 

AO 

-7.15 

45 

CE 

-14.15 

41 

GO 

-13.3 

46 

NO 

-8.3 

45 

RE 

-10.3 

44 

TP 

-12.3 

38 

AP 

-13.3 

42 

CH 

-14 

42 

GR 

-11 

42 

NU 

-9.15 

40 

RG 

-14.55 

37 

TR 

-12.3 

42 

AQ 

-13.15 

42 

CL 

-14 

37 

IM 

-8 

44 

PA 

-13.15 

38 

RI 

-12.45. 

42 

TS 

-13.45 

45 

AR 

-11.45 

43 

CN 

-7.3 

44 

IS 

-14.15 

41 

PC 

-9.3 

45 

RO 

-11.45 

45 

TV 

-12.15 

45 

AT 

-8 

45 

CO 

-9 

45 

LE 

-18.15 

40 

PD 

-11.45 

45 

Roma 

-12.15 

42 

UD 

-13 

46 

AV 

-14.45 

41 

CR 

-10 

45 

LI 

-10.15 

43 

PE 

-14 

42 

SA 

-14.55 

40 

VA 

-8.45 

45 

BA 

-16.45 

41 

CS 

-16.15 

39 

LT 

-12.45 

41 

PG 

-12.15 

43 

SI 

-11.15 

43 

ve 

-8.15 

45 

BG 

-9.3 

45 

CT 

-15 

37 

LU 

-10.3 

43 

PI 

-10.15 

43 

SO 

-9.45 

46 

VE 

-12.15 

45 

BL 

-12 

46 

CZ 

-16.3 

39 

MC 

-13.15 

43 

PN 

-12.3 

46 

SP 

-9.45 

44 

VI 

-11.3 

45 

BN 

-14.45 

41 

EN 

-14.15 

37 

ME 

-15.3 

38 

PR 

-10.15 

44 

SR 

-15.15 

37 

VR 

-11 

45 

BO 

-11.15 

44 

FE 

-11.3 

44 

MI 

-9 

45 

PS 

-12.45 

44 

SS 

-8.3 

40 

VT 

-12 

45 

BR 

-17.45 

40 

FG 

-15.3 

41 

MN 

-10.45 

45 

PT 

-10.45 

44 

SV 

-8.15 

44 




BS 

-10 

45 

FI 

-11.15 

1 

43 

MO 

-10.45 

44 

PV 

-9 

45 

TA 

i 

-17.15 

i 

40 

_ 

_ 



35 




































ra siderale il menù principale visua¬ 
lizza anche l’ultima ora solare che a- 
vete immesso. Usate questo valore 
quando calcolate gli scarti d’ora. Per 
esempio il menù potrebbe indicare 
che l’ora siderale è 06:30, e che l’ulti¬ 
ma ora da voi introdotta è 22:15. In 
tal caso per avere il cielo come si 
presenterà un'ora più tardi dovete 
cambiare l'ora portandola a 23:15, 
non a 07:30. Le prime sei voci del 
menù principale si spiegano pratica- 
mente da sole. Occorre invece qual¬ 
che spiegazione per le opzioni salva¬ 
re e caricare (le voci 7 e 8). Questi 
comandi vi permettono di farvi un ar¬ 
chivio di istantanee del cielo. Per e- 
sempio potreste salvare varie imma¬ 
gini del cielo per sapere come si pre¬ 
senteranno le costellazioni a interval¬ 
li regolari durante l'anno. Notate che 
questa opzione non salva in realtà la 
videata, salva soltanto i parametri se¬ 
lezionati al presente. 

Le opzioni di salvataggio e carica¬ 
mento sono facili da usare. Vi sarà 
chiesto il nome del file. Se premete 
<RETURN> viene visualizzata la di¬ 
rectory del dischetto e viene ripetuta 
la richiesta NOME.FILE. 

L'identificazione 
delle stelle 

Adesso sapete come fare per predi¬ 
sporre l’ora e il luogo e per trasferir¬ 
vi in un'altra posizione. Ma come fa¬ 
re per identificare le stelle dalla posi¬ 
zione in cui siete? Quando l'interes¬ 
se per l'astronomia aumenta si prova 
molta soddisfazione se osservando il 
cielo si è in grado di individuare per 
nome le varie stelle. Planetario vi 
aiuta anche in questo. Supponiamo 
che vediate una stella sullo schermo 
e ne vogliate sapere il nome. E' suf¬ 
ficiente battere N. Il programma dise¬ 
gna un quadratino nel centro dello 
schermo. Mediante i tasti I, J, K e 
M (e nel II Plus <REPT>) spostate 
il quadratino in su, a sinistra, a de¬ 
stra e in giù fino a quando racchiude¬ 
rà la stella che volete identificare. 

Premete <RETURN>. Se il nome 
della stella è nella tavola delle stelle 
il computer la visualizzerà. Se nel 
quadratino si trova più di una stella 
sarà visualizzata la prima della lista 
delle stelle. Ma dovrebbe essere pos¬ 
sibile posizionare il quadrato in mo¬ 
do che racchiuda soltanto la stella 
che volete identificare. 

Adesso supponiamo che conoscia¬ 
te già il nome di una stella, ma vo¬ 


gliate sapere in che punto del cielo 
essa si trova. Basta battere F. Il pro¬ 
gramma vi chiederà il nome della 
stella. Introducete questo nome e pre¬ 
mete <RETURN>. Se la stella è nel¬ 
la tavola, un quadrato lampeggerà 
sullo schermo attorno alla stella per 
una decina di secondi. Se nel luogo 
in cui siete a quell'ora la stella non 
fosse visibile il programma ve lo di¬ 
rebbe. Per uscire da questo modo pre¬ 
mete <RETURN> senza introdurre 
il nome di alcuna stella. L'orologio 
siderale ripartirà. 

Un'osservazione sui nomi usati 
per indicare le stelle: la maggior par¬ 
te delle stelle più luminose ha anti¬ 
chi nomi arabi, greci o latini. In 
qualche caso viene usato più di un 
nome antico. In tempi più moderni 
sono stati adottati metodi più siste¬ 
matici per dare un nome alle stelle. 
Uno di questi sistemi usa lettere gre¬ 
che per rappresentare le stelle in ma¬ 
gnitudine ascendente (ossia alfa è la 
stella più luminosa) per ciascuna co¬ 
stellazione. In base a questo sistema 
Sirio è chiamata Alfa Canis Majo- 
ris. Un sistema più recente numera 
le stelle in ascensione retta crescente 
per una data costellazione. In questo 
programma i nomi delle stelle sono 
per la maggior parte quelli antichi. 

Come funziona e 
come farlo crescere 

Per esigenze di spazio non è possi¬ 
bile pubblicare i listati del program¬ 
ma Planetario, che Applicando offre 
però a un prezzo favorevolissimo 
(Planetario + Supershopper lire 35 
mila); per ordinarlo si utilizza il ta¬ 


HENU DATI 

~> 1. LONGITUDINE: -9 BRADI 0 PRIMI 

2. LATITUDINE: 43 BRADI 

3. DATA: 15/B 

4. ORA SIDERALE:22:24 (INPUT 0:00) 

5. ORIZZONTE: S 

6. TRACCIAMENTO:INDIVIDUALE 

7. SALVARE I DATI SUL DISCO 

8. CARICARE I DATI DAL DISCO 

9. FINE 

USA LE FRECCE 0 SCEGLI UN NUMERO:! 


<ESC> PER RIVEDERE LA MAPPA 

Figura 1. 

Il menù principale di Planetario 


gliando del Disk Service. 

Chi volesse apportare modifiche al 
programma, comunque, potrà farlo 
senza difficoltà listandolo diretta- 
mente dal dischetto. 

Per comprendere la teoria del fun¬ 
zionamento del programma, e 
potervi così intervenire, occorre ave¬ 
re familiarità con i concetti di ora si¬ 
derale, ascensione retta e declinazio¬ 
ne. L'ora siderale è il sistema di mi¬ 
surazione del tempo in relazione alle 
stelle. A causa della rotazione della 
terra un giorno siderale è di circa 






♦ 

+ 

W E 

’ ♦ 

+ ' 



N 


Figura 2. Il cielo a mezzanotte di ferragosto, visto da Milano: orizzonte nord 


36 












quattro minuti più lungo di un gior¬ 
no solare, e quindi l’ora siderale è 
considerevolmente diversa anche dal¬ 
l'ora media di Greenwich. Se si im¬ 
maginano le stelle incollate all’inter¬ 
no di un’enorme sfera celeste, con 
un polo nord e un polo sud, l’ascen¬ 
sione retta (A.R.) è l’equivalente del¬ 
la longitudine e misura la posizione 
radiale della stella. 

La declinazione (DEC) è l’equiva¬ 
lente della latitudine, e misura la po¬ 
sizione della stella dall'equatore cele¬ 
ste verso uno dei poli celesti. La po¬ 
sizione di una stella è solitamente e- 
spressa in ore e minuti di A.R. e gra¬ 
di di declinazione. 

Il programma produce un’immagi¬ 
ne grafica in alta risoluzione del cie¬ 
lo notturno che mostra le stelle mol¬ 
to vicine alle loro autentiche posizio¬ 
ni relative. Naturalmente ogni tenta¬ 
tivo di proiettare una superficie sferi¬ 
ca, qual è il cielo, su un piano avrà 
come conseguenza una certa distor¬ 
sione. La distorsione viene ridotta al 
minimo restringendo la visuale all'o¬ 
rizzonte settentrionale o a quello au¬ 
strale e calcolando le posizioni della 
stella per ciascun insieme di parame¬ 
tri. Per inciso, le principali manche¬ 
volezze degli altri programmi del ge¬ 
nere dipendono dal fatto che non cal¬ 
colano le posizioni delle stelle per 
un’ora specifica né restringono la vi¬ 
suale. In questo modo non presenta¬ 
no un'autentica veduta del cielo not¬ 
turno e possono spesso confondere. 

Ci sono algoritmi separati per gli 
orizzonti settentrionale e meridiona¬ 
le (listato 2). Se viene selezionato 
l’orizzonte meridionale il program¬ 
ma controlla la presenza di stelle cir¬ 


cumpolari (non visualizzate) e stelle 
con declinazione (DEC) minore del 
negativo della latitudine (linee 780- 
820) che non sono mai visibili. 
Poi, dopo la conversione a linea 840 
dell’ascensione retta da ore a radianti, 
la linea 850 determina se la stella 
sia sorta. Date le variabili: 


Z = angolo zenitale in gradi 
S = ora siderale in ore 
D = declinazione in gradi 
R = ascensione retta in ore 
L = latitudine in gradi 


una stella è visibile se: 


cos L cos D cos H => -sen L sen D 


Trovate le stelle visibili è ora pos¬ 
sibile mettere in scala il tracciato in 
modo che il meridiano sia al centro 
dello schermo con sei ore di A.R. da 
ciascun lato (linea 880). Infine la de¬ 
clinazione della stella è messa in 
scala in modo che l’equatore celeste 
divida lo schermo con 45 gradi di de¬ 
clinazione sopra e sotto (linea 890). 

Per l'orizzonte settentrionale la si¬ 
tuazione è un poco più complessa: 
un tracciamento di coordinate polari 
fa in modo che le stelle abbiano l’ef¬ 
fetto di girare in cerchio attorno alla 
stella polare. Anche in questo caso 
viene fatto, a linea 940, il controllo 
della visibilità (mediante lo stesso al¬ 
goritmo di angolo zenitale). Poi, nel¬ 
le linee 950-1040, si usano l’ascen¬ 
sione retta e la declinazione per trac¬ 
ciare le posizioni delle stelle in un 
tracciato di coordinate polari con la 
stella polare al centro. In sostanza 
l'A.R. della stella è convertita in ra¬ 


dianti e ruotata di 90 gradi (6 ore) in 
senso antiorario a linea 970. Il risul¬ 
tato viene messo nella scala appro¬ 
priata e vengono calcolate le coordi¬ 
nate X,Y: 


X = RI COS (XP) 
Y = RI SEN (XP) 


dove RI è il fattore scalare e XP è 
l’angolo orario convertito. 

Aggiungere stelle alla lista è faci¬ 
le. Il primo passo consiste nell’inse- 
rire una linea DATA nel listato 1. 
Introducetela usando per i dati questo 
formato: 


A.R., declinazione, magnitudine, no¬ 
me della stella 


Usate il valore di A.R. per colloca¬ 
re al puntò giusto della lista la voce 
che introducete. Se il valore del- 
l’A.R. di cui disponete è in ore e mi¬ 
nuti convertite i minuti in un deci¬ 
male di due cifre. Analogamente con¬ 
vertite in un decimale di un'unica ci¬ 
fra la declinazione. Per fare un esem¬ 
pio la stella Aldib (Delta Draconis) 
figura nelle carte stellari con A.R. di 
19 ore, 13 minuti, DEC di 67 gradi, 
37 primi e magnitudine di 3.2. Con 
la conversione dei minuti la linea di 
dati da introdurre sarebbe questa: 


1685 DATA 19.22, 67.6, 3.2, 
ALDIB 


Il secondo passo consiste nel cam¬ 
biare il valore di NS alla linea 120 
del listato 1 e nel far girare nuova¬ 
mente il programma per generare un 
nuovo file della tavola. Da ultimo 
assicuratevi che le dimensioni delle 
matrici alla linea 130 del listato 2 
siano alte a sufficienza perché questo 
nuovo valore possa trovar posto. Se 
è necessaria un modifica tutti i valo¬ 
ri della linea 130 del listato 2 devo¬ 
no essere cambiati in modo che sia¬ 
no identici. 

La velocità dell'orologio, infine, è 
controllata dalla variabile W. Au¬ 
mentate il. suo valore alla linea 90 
del listato 2 per rallentare l’orologio, 
e diminuitelo per accelerarlo. 

f \ 

Questo programma è disponibile 

su dischetto. L’elenco, i prezzi 
e le modalità d’ordine di questo 
e degli altri dischetti disponibili 
sono riportati nella rubrica 
Disk Service. 

N... ... J 



© By Nibbio e Applicando 


37 




















One - liners 


Per disegnare in alta risoluzione, 
ecco un semplice one-liner inviato 
da Marco Falda, Leini (TO). La mati¬ 
ta si controlla con i tasti Z - W - A - 
S: rispettivamente su, giù, sinistra, 
destra. Con i tasti L ed M si può in¬ 
crementare o decrementare la variabi¬ 
le C, che definisce il colore. Nella 
parte bassa dello schermo viene indi¬ 
cato il colore (Hcolor) selezionato e 
la posizione X,Y in cui verrà visua¬ 
lizzato il punto. Utilizzando il ciclo 
FOR-NEXT Z, e decrementando Z 
di 1 prima di chiudere il ciclo (con 
NEXT Z), si è ottenuto un ciclo 
chiuso e continuo, evitando di utiliz¬ 
zare l’istruzione GOTO, che avrebbe 
rimandato il controllo a inizio riga 
pulendo la pagina grafica ogni volta 
a causa di HGR. 


One-liner 113 

1 HOME :C =3:X =100:Y =100: HGR 
: FOR Z = 1 TO 2: GET A$:X = 

X + (A$ = "S") * (X < 278) - 
(A$ - M A") * (X > 0) :Y = Y + 
(A$ = "W") * (Y < 159) - (A$ 

= "Z") * (Y > 0) :C = C + (A 
$ = "M") * (C < 7) - (A$ = " 
L")*(C > 0):HPLOT X,Y:HCOLOR= 
C:VTAB 22: PRINT "HC="C: VTAB 
22: HTAB 20: PRINT "X= ,, X" ": 

HTAB 20: PRINT ,i Y= ,, Y M " : Z = 

Z - 1: NEXT Z 


Dato il Run a questo one-liner di 
Augusto Beschin, Alte di Montec- 
chio (VI), viene creato sul disco un 
text file (BIP). Con l’istrazione E- 
XECBIP si autoinstalla in memoria 
una routine sonora e, a ogni tasto 
premuto, si ottiene un bip di con¬ 
ferma. 


One-liner 114 

10 A$ = CHR$ (4): PRINT A$"OPEN 
BIP":PRINT A$"WRITEBIP":PRINT 
"CALL-151": PRINT "300:A9 11 
85 38 A9 03 85 39 DO 03 20 
89 FE 20 EA 03 60 48 A0 0A A 
9 12 20 A8 FC AD 30 CO 88 DO 
F5 68 4C 1B FD N 300G3D0G": 
PRINT A$"EXECBIP" 

Eccq un piacevole effetto, realizza¬ 
to da Nicola Mazzariello del Villag¬ 
gio Snia di Milano. Genera delle bar¬ 
re a scorrimento verticale. 


One-liner 115 

1 FOR X = 768 TO 798:READ N:POKE 
X,N: NEXT : HGR : POKE 49234 
,0: HCOLOR= 3: FOR Y = 0 TO 
180 STEP 16: FOR X = Y TO Y + 
7: HPLOT 0,X TO 279,X: NEXT 
: NEXT : CALL 768: DATA 162, 
32,142,10,3,142,15,3,185,0,0 
,73,127,153,0,0,200,208,245, 
238,10,3,238,15,3,202,208,23 
6,76,0,3 


Anche questo one-liner, che produ¬ 
ce un piacevole effetto di pulizia del¬ 
la pagina di testo, è di Nicola Mazza¬ 
riello. 


One-liner 116 


X = 1 TO 24: HTAB 1: VTAB X: 
PRINT A$;: NEXT : FOR S = 1 
TO 20: POKE 32,20 - S: POKE 
33,2 * S: POKE 34,10 - INT 
(S / 2): POKE 35,14 + INT ( 
S / 2): HOME : FOR W = 1 TO 
50: NEXT : NEXT 


Carlo Giannini di Bibbiena (AR) 
ha realizzato un Text Writer su una 
sola linea. Scrivete una frase e date 
il RUN: la rivedrete sulla stampan¬ 
te. Può essere utile per completare, 
con la data o altro, un documento fa¬ 
ticosamente compilato. 


One-liner 117 

1 PRINT CHR$ (4)"PR#1": GET T$ 
: PRINT T$; SPC( 0);: GOTO 1 


Ecco un utile strumento per impa¬ 
rare le tabelline, ideato da Marco 
Sperati di Nizza Monferrato (AT): 
visualizza automaticamente, scriven¬ 
do i numeri da moltiplicare, il risul¬ 
tato lampeggiante nella tavola pita¬ 
gorica. 


One-liner 118 

1 HOME : POKE 34,20: FOR I = 1 TO 
10: FOR E = 1 TO 10: HTAB E * 
3:VTAB I * 2:PRINT I * E: NEXT 
E: NEXT I: FOR Q = 0 TO 1:Q = 
0: VTAB 22: INPUT H: INPUT G 
: ON (G > 10 OR H > 10) GOTO 
1: FLASH : HTAB H * 3: VTAB 
G * 2: PRINT G * H: NORMAL : 

GET G $ : HOME :HTAB H * 3:VTAB 
G * 2: PRINT G * H: NEXT Q 


Dello stesso autore, ecco un one-li¬ 
ner per scritte scorrevoli. Permette 
di far scorrere sul monitor una scrit¬ 
ta memorizzata nella variabile A$. 


One-liner 119 

1 A$ = "QUESTA RIGA PUÒ' ESSERE 
UNA SUBROUTINE DI UN VOSTRO 
PROGRAMMA. PERMETTE DI VISUA 
LIZZARE SCORREVOLMENTE LUNGH 
I MESSAGGI OCCUPANDO UNA SOL 
A RIGA": HOME :SPEED= 217: FOR 
I = 1 TO LEN (A$) - 19: VTAB 
22: HTAB 10: PRINT MID$ (A$ 
,1,20): NEXT I: SPEED= 255 


L'one-liner di Enrico Bernardini, 
Carrara S. Giorgio (PD) crea un fan¬ 
tastico disegno in alta risoluzione 
sulla pagina grafica 1. 


One-liner 120 

1 HOME : VTAB 21: HGR :Z = 8:K = 
10:T = 10: HCOLOR= 7: HPLOT 
130, 80 :A = 3 * RND (1):B = 

3 * RND (1): FOR H = 0 TO 6 
.28 STEP 3.14 / 180 :R = Z * 
SIN (H * T):X = 130 + INT 
(K * R * - COS (A * H)):Y = 
80 + INT {K * R * SIN (B * 
H)):HPLOT TO X,Y:NEXT H: FOR 
J = 1 TO 2500: NEXT J: GOTO 1 


Dato il RUN apparentemente non 
succede nulla. Ma provate a battere 
il tasto DELETE o TAB, oppure le 
frecce su e giù... 

In realtà, grazie al prpgrammino di 
Sergio Abeni, Castellare di Pescia 
(PT), avete a disposizione una nuo¬ 
va tastiera, particolarmente utile se a- 
vete un Ile e desiderate digitare i vo¬ 
stri programmi o copiare quelli al¬ 
trui. 

Come è noto, sul Ile è un conti¬ 
nuo ricorso al tasto di SHIFT o un 
continuo inserimento e disinserimen¬ 
to del tasto di SHIFT LOCK. Con 
questo one liner si potrà tenere sem¬ 
pre inserito il tasto SHIFT LOCK, 
dal momento che i simboli più usati 
(-,;:$) = " si ottengono premen¬ 
do rispettivamente FRECCIA 
GIU’, -, >, A , !, [, FRECCIA SU, 
DELETE, TAB. 

Questo one-liner non funziona sot¬ 
to ProDos ed è utile solo per il II c. 


38 






















a 


One-liner 121 

1 FOR A = 768 TO 820:READ B:POKE 
A,B: NEXT : DATA 169,11,133, 
56,169,3,133,57,76,234,3,32, 
27,253,160,12,217,28,3,240,4 
, 13 6, 20 8, 24 8, 96,185, 4 0, 3, 96, 

255.137.138.139.223.222.161, 

219.190.173.187.172.189.162, 
168,169,173,187,186,164,172, 
223,222,190: CALL 768 


Questo one-liner dimostra che non 
è difficile dare l’idea tridimensionale 
di una sfera con i suoi meridiani. E’ 
stato creato da Manlio Castronovo 
di Brindisi. 


One-liner 122 

. 1 HOME : HGR2 : HCOLOR= 3: FOR 
A = 20 TO 170 STEP 7:B = 1.1 
5 * ( SQR (6400 - (A - 95) * 
2)): FOR C = 0 TO 6.4 STEP . 
2:X = B * COS (C) + 139:Y = 
A - B * SIN (C) / 5: HPLOT 
X,Y:NEXT :HPLOT TO X,Y:NEXT 


Date il Run a questo one-liner di 
Luigi Favia, Brindisi, e vedrete sul 
monitor, in alta risoluzione, il mera¬ 
viglioso rosone di un'antica catte¬ 
drale. 


One-liner 123 

1 HOME : HGR : HCOLOR- 3: DIM A 
(21),B(21): FOR P = 2 TO 21: 

A (P) = 78 * SIN (.314 * P) + 
140 :B(P) - 78 * COS (.314 * 
P) + 80: NEXT : FOR P = 2 TO 
21: FOR Q = P TO 21: HPLOT A 
(P) , B (P ) TO A(Q),B(Q): NEXT 
: NEXT 


Utilizzando questo one liner di Fe¬ 
lice Rosso, Ragusa, è possibile tra¬ 
sformare un file in alta risoluzione 
da positivo in negativo e viceversa. 
Funziona anche con i file a colori. 
Date il RUN al programma, richia¬ 
mate un disegno sulla prima pagina 
grafica e battete CALL 24576. 

Non funziona con la seconda pagi¬ 
na grafica. 


One-liner 124 

1 FOR K = 24576 TO 24611: READ 
A: POKE K,A: DATA 169,32,141 
,15,96,141,18,96,162,0,169,2 
55,56,253,0,64,157,0,64,232, 
208,244,238,15,96,238,18,96, 
173,15,96,201,64,144,231,96: 
NEXT 


Ideato da Davide Massa di Savama 
(RA), questo one-liner permette di e- 
seguire somme e sottrazioni fra cifre 
sessagesimali. Dopo il RUN chiede 
di inserire le ore (H), i minuti (M) e 
i secondi; poi il segno dell'operazio¬ 
ne (+/-) e quindi la cifra sessagesi¬ 
male da addizionare o sottrarre alla 
prima. 


One-liner 125 

20 INPUT "H,M,S ";A,B, C: INPUT 
"+/-?: ";0$: INPUT H H,M,S " ; 
D,E,F:X = D * 3600 + E * 60 + 
F:S = A * 3600 + B * 60 + C + 

(0$ = " + ") * X - (0$ = "-") * 

X:H = INT (S / 3600) :S = S - 

H * 3 600:M = INT (S / 60) :S 

= S - M * 60: PRINT "RIS.=" 

;H;" H ";M;" MIN S;" SEC": 
PRINT"ANCORA? "; :GET Z$:PRINT 
: IF Z$ = "S" THEN 20 


La prima serie di cento 
programmi One-liners (Applicando 
N. 16) è disponibile su dischetto. 

I prezzi e le modalità d’ordine 
di questo, come degli altri 
dischetti, sono riportati nella 
rubrica Disk Service. 

> / 




Applicando a portata di mano 


E' disponibile il raccoglitore di Applicando e gli indici su 
dischetto degli anni 1983/84/85. Ogni raccoglitore 
consente di archiviare le annate 1983 e 1984 insieme 
oppure i numeri del 1985. Ordina subito i tuoi 
raccoglitori: riceverai in omaggio un numero arretrato di 
Applicando a tua scelta (valore L. 7.000) per ogni 
raccoglitore ordinato ( n.b. i numeri 1 e 2 sono esauriti). 



Sì, voglio avere Applicando sempre 
a portata di mano. Inviatemi: 

□ N...raccoglitori per 

Applicando a L. 18.000 cadauno 
In omaggio inviatemi l'arretrato/i 
N.(1 e 2 esauriti) 

□ Disco indici 

□ per Apple II a L.5.000 

□ per Macintosh a L. 10.000 
(utilizzabile con MacWrite) 

Vi invio L.a mezzo 

□ assegno non trasferibile 
allegato intestato a Editronica srl 

□ versamento su ccp N.19740208 
Editronica srl Corso Monforte 39 
20122 Milano di cui allego ricevuta 

Nome. 

Cognome. 

Via. 

Cap.Prov. 

Città. 


Compilare .^ritagliare e inviare in busta chiusta allegando il pagamento a Editronica srl - Corso Monforte 39 - 20122 Milano 






























SUPER 




PER II, //e, Ile 
MACINTOSH 



Il Basic e gli Apple II in pratica. Questo volume 
accompagna gradualmente l’utente, al quale 
non è richiesta alcuna conoscenza matematica 
o informatica di base, dai primi approcci alla 
tastiera fino alla completa padronanza del com¬ 
puter e della programmazione. È il lettore a 
decidere se passare al successivo capitolo o 
ritornare ad approfondire quanto gli è stato 
appena spiegato. 310 pagine, 28.000 lire. 



Il Multiplan per il Macintosh. Oltre la pura 
semplice descrizione del funzionamento del fo¬ 
glio elettronico, introduce l’utente all’uso di 
uno strumento di lavoro integrato che permette 
di svolgere una quantità insospettabile di attivi¬ 
tà diverse in ogni area del lavoro d’ufficio o nella 
professione: modifiche, tagli, spostamenti, ri¬ 
montaggi, dal bilancio di una società al campio¬ 
nato di calcio. 210 pagine, 26.000 lire. 



Il manuale ProDOS. Il ProDOS costituisce un 
significativo passo avanti rispetto al diffuso ma 
ormai un po’ invecchiato DOS 3.3. Questo ma¬ 
nuale introduce ai numerosi e complessi aspetti 
del ProDOS, dedicando particolare attenzione 
alla struttura ad albero dei directory, alla com¬ 
patibilità con il DOS 3.3 e con il SOS e alla 
programmazione in Basic Applesoft sotto Pro¬ 
DOS. 200 pagine, 25.000 lire. 



Il Basic Microsoft. Il libro comprende un’anali¬ 
tica descrizione dell’uso di tutte le istruzioni, 
funzioni, comandi e operatori, organizzata in un 
vero e proprio corso di programmazione: loop, 
array, gestione di stringhe, formattazione del¬ 
l’output, subroutine, debugging, uso dei me¬ 
nu, gestione dei file ad accesso casuale e se¬ 
quenziale, file di chiavi e puntatori. Ricchissima 
documentazione esemplificativa. 432 pagine, 
38.000 lire. 



Genitori nell’era del computer.ln che modo è 
possibile servirsi del computer nell’educazione 
dei figli? In che misura il computer cambierà la 
scuola? Qual è il software più adatto a stimolare 
la creatività dei bambini? A queste domande - e 
ad altre ancora - Pter Scharf dà delle risposte 
basate sulla sua esperienza in famiglia (quattro 
figli maniaci del computer) e nelle scuole statu¬ 
nitensi. 256 pagine, lire 19.000. 


COMPUTER 

GRAPHICS 

CORSO DI 
PROGRAMMAZIONE 
STEVEN HARRINGTON 



McGrawHì» 


Computer Graphics. L’approccio seguito da 
Harrington rende accessibile il libro a un pubbli¬ 
co con basi matematiche elementari e concate¬ 
nando la spiegazione dei vari algoritmi in modo 
da portare il lettore anche alla realizzazione di 
un package grafico ben costruito e basato su 
concetti di standardizzazione delle funzioni. 
520 pagine, 39.000 lire. 


PASCAL 

GUIDA PER 
PROGRAMMATORI 
OLIVIER LECARME 
JEAN-LOUIS NEBUT 



McGraw-Hill 


Pascal. Guida per programmatori. Il libro può 
essere usato per un corso intermedio da coloro 
che scrivono programmi più avanzati, ma il suo 
fine principale è quello di servire come libro dì 
testo per l’autoapprendimento, poiché esso of¬ 
fre una trattazione esauriente del Pascal e una 
descrizione fedele e precisa del linguaggio stan¬ 
dardizzato dall’ISO e dagli isituti nazionali di 
standardizzazione. 292 pagine, 29.000 lire. 











Programmazione umanizzata in Applesoft. 

Riassume tutte le tecniche che vengono comu¬ 
nemente impiegate dagli esperti di software per 
rendere più amichevoli i programmi. Vengono 
infatti affrontati tutti gli aspetti di queste tecni¬ 
che: sia quelli intèrni al software, come routine 
a prova d’errore o di formattazione dell’input, 
sia quelli esterni, come la documentazione e i 
manuali operativi. Il libro include un quiz mne¬ 
monico e un’agenda telefonica. 208 pagine, 
21.000 lire. 





Grafica e animazione con gli Apple //. Questo 
libro vuole guidare gli appassionati nella com¬ 
plessa materia della grafica e dell’animazione, 
prendendoli per mano dai primi rudimenti attra¬ 
verso numerosi esempi e applicazioni, fino a 
una completa comprensione dei principi e dei 
metodi della computer graphics. Gli esempi 
sono applicati allafamigla degli Apple//: Il Plus, 
//e e //c. 160 pagine, 17.000 lire. 



Il Basic Applesoft. In 16 capitoli, un metodo 
graduale che non presuppone alcuna cono¬ 
scenza di base. Tra gli argomenti trattati: uso 
interattivo del computer, sintassi dei comandi 
DOS, formattazione dell’input e dell’output, ar- 
ray, selezione e ordinamento dei dati, grafica a 
bassa e ad alta risoluzione, trattamento dei file 
su disco, debugging, riepilogo delle istruzioni, 
comandi e funzioni Applesoft. 232 pagine, 
19.000 lire. 



Guida al Macintosh. Fin dal primo approccio, il 
Mac è molto amichevole, e offre sul video una 
scelta tra varie opzioni, rappresentate da icone. 
In questo modo l’utente può scegliere una o più 
di queste funzioni potendo tranquillamente 
ignorare ciò che avviene all'interno della mac¬ 
china e superando così la naturale diffidenza 
che a volte i computer ispirano. Lo strumento 
fondamentale per questo rapporto amichevole 
con il Mac è il mouse. 224 pagine, 22.000 lire. 


Il manuale MC68000. La famiglia di questo 
microprocessore trova un utilizzo vastissimo in 
workstation, sistemi CAD/CAM, sistemi di 
commutazione telematici, robot e controllori di 
processo, oltre che nei microcomputer di re¬ 
cente realizzazione, come Macintosh, Sinclair 
QL, HP 9816. Questo manuale è una preziosa 
fonte di informazione per gli appassionati che 
vogliono cimentarsi con la programmazione in 
Assembler. 168 pagine, 16.000 lire. 


Come usare MacWrite e MacPaint. Molto più 
di quanto facciano i manuali operativi allegati ai 
programmi, questo volume svela ogni trucco 
dei due applicativi per Macintosh, spiegando ed 
esemplificando particolari tecniche di disegno e 
di gestione dei testi, sempre nell’ottica di un 
uso integrato dei due programmi. Il libro è 
riccamente illustrato con immagini prodotte se¬ 
guendo fedelmente i consigli del testo, così da 
offrire ai lettori il risultato grafico di ogni se¬ 
quenza di operazioni. 192 pagine, 20.000 lire. 


Compilare e spedire il tagliando qui sotto a Applicando , Editronica Srl., Corso Monforte 39, 20122 Milano 


Sì! Inviatemi subito, senza aggravio di spese 
postali, il o i libri contrassegnati con una 
crocetta. 

□ Il Basic e gli Apple II in pratica. 28.000 lire. 

□ Il manuale ProDOS. 25.000 lire. 

□ Programmazione umanizzata in Applesoft. 

21.000 lire. 

□ Grafica e animazione con gli Apple //. 17.000 lire. 

□ Il Basic Applesoft. 19.000 lire. 

□ Il Multiplan per il Macintosh. 26.000 lire. 

□ Il Basic Microsoft. 38.000 lire. 

□ Guida al Macintosh. 22.000 lire. 

□ Il manuale MC68000. 16.000 lire. 

□ Come usare MacWrite e MacPaint. 20.000 lire. 

□ Genitori nell’era del computer. 19.000 lire. 

□ Computer Graphics. 39.000 lire. 

□ Pascal. Guida per programmatori. 29.000 lire. 


Cognome.Nome. 

Via.Cap. 

Città.Prov . 

Scelgo la seguente formula di pagamento: 

□ allego assegno di L.non trasferibile intestato a Editronica srl. 

□ allego ricevuta versamento di L.sul cc/p n. 19740208 intestato a 

Editronica srl - Corso Monforte, 39 - 20122 Milano 

□ pago fin d’ora l’importo di L..con la mia carta 

di credito BankAmericard N ... 

scadenza.autorizzando la Banca 

d’America e d’Italia ad addebitarne l’importo sul mio conto BankAmericard. 

Data 


Firma 



























Il gioco ha regole facili ed è appassionante. 
Ma il punteggio! Complesso da conteggiare, 
lungo da annotare, facile da contestare. 
Per giocare senza impicci, guadagnando 
magari anche il tempo per una partita in più.., 

Tutti i conti 
del tuo gin 


Giocare a Gin è molto semplice, 
soprattutto se si sa giocare a Scala 
quaranta, che presenta con il Gin 
molte somiglianze. Innanzitutto si 
gioca in 4, due giocatori nella squa¬ 
dra A e due giocatori nella squadra 
B. Ogni giocatore della squadra A 
gioca contro un giocatore della squa¬ 
dra B. Occorrono però non due maz¬ 
zi di 50 carte (i mazzi per la verità 
sono quelli da 52, ma vanno tolti i 
Jolly) bensì tre, perché il terzo serve 
da Vela o Mazzo guida. 

Una volta stabilita la squadra che 
per prima dà le carte, questa mescola 
e serve, mentre l'altra squadra mesco¬ 
la la Vela. La Vela si pone in mezzo 
al tavolo con le carte coperte, tranne 
l'ultima carta che va posta, girata, in 


cima al mazzo; a ogni mano la squa¬ 
dra che perde deve "girare la Vela”, 
cioè prendere l’ultima carta del maz¬ 
zo e portarla in cima, sempre scoper¬ 
ta: poi vedremo perché. 

Chi serve deve dare al suo avversa¬ 
rio 11 carte coperte, servirsene 10 e 
porre le carte avanzate sul tavolo, 
carte che verranno prese una alla vol¬ 
ta a ogni scarto, a meno che non si 
preferisca prendere la carta scartata 
dall'avversario. Il servito quindi scar¬ 
ta per primo, mentre il suo avversa¬ 
rio ha la possibilità di pescare dal 
mazzo o di prendere la carta scartata 
dall'avversario. Il gioco finisce quan¬ 
do uno dei due può posare sul tavo¬ 
lo tutte le sue carte contemporanea¬ 
mente. 


Per fare ciò le carte devono essere 
(almeno tre di fila) in scala di un uni¬ 
co colore e/o a gruppi di tre o quat¬ 
tro carte uguali (tre o quattro Regi¬ 
ne, tre o quattro 7, e così via). Per e- 
sempio, 6,7,8 di picche; tre Assi; 
Regina, Re, Asso e 2 di cuori (la 
scala può infatti continuare dopo il 
Re). Con questo fanno dieci carte; 
l'undicesima si scarta: si dice allora 
che il giocatore ha fatto Gin. Qualo¬ 
ra il giocatore riesca a mettere sul ta¬ 
volo tutte le sue carte senza scartar¬ 
ne nemmeno una si dice invece che 
ha fatto Big. 

Il suo avversario pagherà tutte le 
carte in mano, tranne i tris (o quat¬ 
tro carte uguali), le scale e le carte 
"di appoggio", cioè le carte che pos- 



Figura 1. Per prima cosa ii programma chiede il 
nome dei quattro giocatori, divisi in due squadre. 


Figura 2. Al termine di ogni mano, basta indicare il 
numero relativo al punteggio fatto. 













sono essere aggiunte a quelle che 
Tavversario ha messo sul tavolo (il 
quarto Re, se il vincitore ha messo 
sul tavolo tre Re, un appoggio a u- 
na scala, e così via). Le carte conta¬ 
no il loro punto (un 5 cinque punti, 
un 7 sette punti), le figure dieci pun¬ 
ti e gli Assi quindici punti. 

Oltre al Big e al Gin c’è però un'al¬ 
tra possibilità, ed ecco il perché del¬ 
l’esistenza della Vela o Mazzo guida. 
E’ infatti possibile chiudere in battu¬ 
ta, o battere, e cioè mettere sul tavo¬ 
lo per esempio un tris e cinque carte 
in scala e scartare le ultime tre carte, 
purché la somma di due di queste tre 
carte sia inferiore alla Vela, cioè alla 
carta scoperta in cima al Mazzo gui¬ 
da. Per esempio, se sulla Vela c’è un 
5, le tre carte scartate possono esse¬ 
re solo due 2 (totale quattro, quindi 
un punteggio inferiore a quello indi¬ 


cato dalla Vela) e una terza carta qua¬ 
lunque. Ma attenzione, perché il vo¬ 
stro avversario potrebbe andare Un¬ 
der, cioè rimanere con le carte che 
non può mettere sul tavolo o appog¬ 
giare alle vostre che, sommate, dan¬ 
no un punteggio uguale o inferiore 
al vostro quattro. 

Per esempio, se dovesse rimanere 
con un 3, ecco che andrebbe Under; 
in questo caso, voi non guadagnere¬ 
ste né perdereste alcun punto, men¬ 
tre al vostro avversario spetterebbero 
50 punti. Se invece il vostro avver¬ 
sario non va Under, il punteggio si 
calcola sottraendo alle carte che gli 
rimangono in mano, tolte cioè quel¬ 
le che può mettere sul tavolo perché 
tris o in scala, o quelle che può ap¬ 
poggiare alle vostre, i punti della vo¬ 
stra battuta: nell’esempio appena ac¬ 
cennato, quattro punti. 


La battuta però non può essere ef¬ 
fettuata se la carta scoperta della Ve¬ 
la è un asso: in questo caso si dice 
che è Gin obbligatorio, e quindi vin¬ 
ce solo chi chiude regolarmente con 
una sola carta di scarto o con nes¬ 
suna. 

Altro particolare importante: tutte 
le carte che a mano a mano vengono 
scartate possono essere guardate du¬ 
rante il gioco, perché è importante e- 
vitare di scartare carte che l’avversa¬ 
rio può utilizzare per comporre i pro¬ 
pri tris e le proprie scale. 

Fin qui, tutto semplice; la faccen¬ 
da si complica maledettamente quan¬ 
do si tratta di segnare i punti e poi 
di calcolare il punteggio finale. Ecco 
il perché di questo programma dispo¬ 
nibile sia in versione per Apple II 
che per Macintosh, di cui però non 
pubblichiamo i listati perché occu- 


MANO 

Squadra <A> 

GIORGIO STEFANO 

a 

n. a 

FRANCESCA HM 

1 .BIG 

BIG 

1 

2.GIN 

GIN 

GIN 

3. Battuta 

Battuta 

Battuta 

4. Under 

Under 

Under 

5. Paga 

Pa9a 

Pa9a 


Fiaura 3. Se si sceglie l'opzione 5, "paga punti", 
allora il computer chiede s 'quanti punti?". 



Figura 4. Dato l'ok all'operazione descritta in figura 
3, il computer presenta il punteggio aggiornato. 



n. a 

Squadra <B> 


Squadra <A> Squadra <B> 

GIORGIO STEFANO FRANCESCA MARCO 


MANO 
Squadra <A> 
GIORGIO STEFANO I 


i n. a 

Squadra <B> 
FRANCESCA MARCO 



Vuoi calcolar* il punt* 99 io <S/N> 


Figura 5. Proseguendo con le mani, il computer 
aggiorna il punteggio e blocca le colonne chiuse. 


Figura 6. Ecco come si presenta il tabellone dei 
punteggi al termine di una partita. 




43 































r é Fila Edìt 

S«<ìi< h Run 

Windows 


1 

SI 1 ■ ■ - G 1 N n.i,--- - ------i- . — 

iato-arca* 


Mano N. 1 



Squadra A 

Squadra B 


|Francesca | 

|Mario 

|Arturo 

| |Stefanc| 


O big 

O big 

O big 

Punti? 34 


O GIN 

® GIN 

O gin 



(i) Battuta 

O Battuta 

O Battuta 



O Under 

O Under 

® Under 



O Pago 

O Paga 

O Paga 



L!\J 

( RNNULLR ] 







E 


Figura 7. Come nella versione per Apple II, anche in 
quella per Mac è facile dare le indicazioni al computer. 


é Pila E di t Soorfit Run Windows 
^SINj 

Mano N.6 

Squadre A Squadra B 

[Francesca | |Mario [ [Arturo | |Stefanc| 


1 

2 

3 

i 

2 

3 

pljj 

H 

mi 

|S|1J 

320 

135 

illtl 

Q 

B 

A 

10 

5 


VUOI GIOCARE UN’ALTRA MANO? 


Figura 8. Il Mac calcola automaticamente il punteggio, 
proponendolo aggiornato a ogni mano successiva. 


perebbero troppo spazio; ma i pro¬ 
grammi su dischetto sono disponibi¬ 
li attraverso il Disk Service o gratis 
per chi ha sottoscritto un abbona¬ 
mento ad Applicando con disco pro¬ 
grammi (vedi pagine 30 e 31). 

Il punteggio 

Il punteggio deve essere segnato 
su un foglio come evidenziato nella 
figura 4. Facciamo un esempio 
pratico: i due giocatori della squadra 
A fanno entrambi Gin contro i gioca¬ 
tori della squadra B. I giocatori della 
squadra B pagano rispettivamente 5 
e 15 punti. I due Gin valgono 50 + 
50 punti, cioè 100 punti, i 20 pun¬ 
ti degli avversari vengono raddoppia¬ 
ti, valgono cioè 40 punti. Si segna 
quindi la squadra A nella parte supe¬ 
riore della prima colonna, con 140 
punti, mentre nella parte inferiore, 
sempre della prima colonna, si se¬ 
gnano 9 Cocotte o Cocche. Le Co¬ 
cotte sono infatti punti aggiuntivi 
che vengono attribuiti solo alla squa¬ 
dra che vince la mano e sono, rispet¬ 
tivamente, 10 per ogni Big, 5 per o- 
gni Gin e 1 per la Battuta. 

Ma se entrambi i giocatori di una 
squadra vincono la mano, come nel 
caso che stiamo ipotizzando, si som¬ 
mano 5 + 5 Cocotte, ma si sottrae 1 
punto, quindi si segnano solo 9 Co¬ 
cotte, perché le Cocotte devono esse¬ 
re sempre dispari. 

Complicato? Be', il peggio deve 
ancora venire. Ipotizziamo a questo 
punto una seconda mano in cui sia 
un giocatore della squadra A sia uno 
della squadra B facciano Big; natural¬ 
mente gli altri due giocatori pagano. 
Poniamo che quello della squadra A 
paghi 2, mentre quello della squadra 


B paga 10. Ecco il risultato: 100 - 4 
= 96; 100 - 20 = 80; 96 - 80 = 16. 
Segna quindi 16 punti nella seconda 
colonna la squadra A. Questi 16 pun¬ 
ti vanno sommati anche al risultato 
precedentemente segnato nella prima 
colonna. Mentre le Cocotte vengono 
attribuite solo alla squadra A, la 
squadra che si segna, e sono 9 per 
via del Big. Anche queste, poi, devo¬ 
no essere sommate a quelle già se¬ 
gnate nella prima colonna. 

Terza mano. Squadra A: un Gin e 
una Battuta; Squadra B: Under e 5 
punti. Totale: 50 del Gin + 0 della 
Battuta = 50; 50 dellUnder - 10 = 
40. 50 - 40 = 10 per la squadra A. 
Questo punteggio va segnato in ter¬ 
za colonna, ma sommato anche sia 
nella prima sia nella seconda colon¬ 
na. Le Cocotte sono 5 per la squadra 
A per via del Gin. 

La partita continua finché non si 
raggiungono 450 punti in ogni co¬ 
lonna. Naturalmente quando una co¬ 
lonna è chiusa non bisogna più som¬ 
mare al suo interno i punti della ma¬ 
no successiva, come pure non biso¬ 
gna sommarli nella corrispondente 
colonna avversaria, anche se in que- 
st’ultima i punti sono inferiori al 
450. Ma attenzione ai Blitz! Perché 
se una squadra non si segna in una 
delle tre colonne, si dice che in quel¬ 
la colonna è stata blizzata, e allora 
nel conteggio finale paga altre pena¬ 
lità. 

Il conteggio finale 

Se il calcolo fin qui vi è sembrato 
complesso, pensate solo che sarà il 
vostro Apple II o il vostro Macinto¬ 
sh a eseguirlo, liberandovi dall’obbli- 
go di assumere un ragioniere allo 


scopo. Bisogna infatti ancora fare il 
conteggio dei punti squadra per squa¬ 
dra, sommando i totali delle tre co¬ 
lonne. Poi va aggiunto un premio di 
450 punti per ogni colonna chiusa, 
al quale va aggiunto un premio corri¬ 
spondente al dóppio del punteggio 
ottenuto in ogni colonna la cui co¬ 
lonna corrispondente dell'avversario 
sia stata blizzata. Infine si conteggia¬ 
no le Cocotte e si raddoppiano quel¬ 
le eventualmente appartenenti alla o 
alle colonne, le cui corrispondenti 
colonne della squadra avversaria sia¬ 
no state blizzate, e si moltiplica per 
25. Infine si fa la differenza tra i due 
risultati. 

Il programma 

Con AppleGin (versione per il II) 
o MacGin (versione per Macintosh), 
basta specificare per ogni giocatore 
se ha fatto Big, Gin, Battuta, Under 
o se paga punti. In quest'ultimo ca¬ 
so il computer chiede quanti punti. 
Dopodiché il computer visualizza, 
mano per mano, il risultato, segnala 
quando una colonna è chiusa e, alla 
fine di una partita, quando cioè tutte 
e tre le colonne sono chiuse, calcola 
il punteggio finale in pochi secondi. 

Con il tempo risparmiato, in una 
serata si può tranquillamente fare un 
Gin in più, quella rivincita che si 
vorrebbe tanto fare, ma che... 

Francesca Marzotto 

( \ 

Questo programma è disponibile 

su dischetto. L’elenco, i prezzi 
e le modalità d’ordine di questo 
e degli altri dischetti disponibili 
sono riportati nella rubrica 
Disk Service. 

> M 


44 






















































«Nutricale 

E' un integrato dedicato a chi esce dai freddi invernali 
con qualche chilo di troppo. Un database di 900 cibi, in¬ 
cluso il pranzo tipico americano accolto anche da noi 
con il nome di fast food, provvede ad analizzare calorie, 
sodio, colesterolo, grassi, proteine e vitamine dei piatti 
inseriti. 

I valori, poi, vengono rappresentati in veste grafica co¬ 
sì come i risultati dell’analisi che suggeriscono cosa e 
quanto sarebbe meglio evitare o le proteine che mancano 
per un giusto equilibrio alimentare. Nutricale costa 80 
dollari ed è prodotto dalla Camde Corporation, 46 Prince 
Street, Rochester, New York 14607. Telefono (716) 
473-5330. 


LIST ALI 

Select Foods to List... 

m | 

ch*rri« ,sour ,rt d ,pit 

Change Food Ordering... 

9C0 

ch*rry pi*, whol* 
chicken &. noodl*s (ho 

[^Display graph 

Display RDA analysis 

r\ 

chtcktn a la king 
chick*n br*ast, fr i*d 
chr- -— —1 

^Display energy sources 
| Display history data... 

1 

%H | 


é File Edit 


Change-lnfo 


•olls, brovn & s*rv* 
fluid whol* milk (3.338 fai) 
Dotato salad 


Energy Sources 



Quantity 


Cherry Pie, 1/7 Slice 
flmt: 11.00 I Slices 


_ mcns 

OCup OPint OQuart ( Cancel ] 
OTbsp O Tsp OGram 
OOunce O Pound OCC 


0K 


0 20* 40* 60* 80* 100* 


EMERGV Ca 
F'ROTEIN Gm 
FflT Gm 

CflRBOH. Gm 
IROM rig 
UIT. C Mg 
S001UM Mg 
CHOLES. Mg 


Nutrients, 


•Ready Set-Go versione 2.0 

Continuano la campagna e il successo di Apple Edit, 
l'editoria in casa con Macintosh e LaserWriter. A testi¬ 
monianza di ciò, la Manhattan Graphics ha presentato la 


versione 2.0 di Ready Set-Go, un programma per impa¬ 
ginare direttamente sul video del Macintosh. Ready Set- 
Go è stato il primo esempio di Desktop Publishing con 
il Mac, e come spesso accade ha pagato il dazio dei novi¬ 
zi. Il meccanismo di lavoro risultava piuttosto complica¬ 
to; in particolare era possibile studiare un solo layout di 
una pagina e il trasferimento di testo e figure poteva av¬ 
venire soltanto attraverso il clipboard; oppure si poteva 
battere il testo direttamente sul monitor di Ready Set- 
Go. 

La versione 2.0 permette invece diversi layout e 
preleva direttamente i testi da un file di Microsoft Word 
o di MacWrite. Per le figure bisogna invece passare attra¬ 
verso l’archivio appunti. Altri vantaggi della nuova ver¬ 
sione sono la possibilità di lavorare con un trentaduesi¬ 
mo (32 pagine in gergo tipografico) per ogni file e l’op¬ 
zione Add a page che permette durante la lavorazione di 
aggiungere una eventuale pagina al numero stabilito nei 
parametri iniziali. Questo per non trovarsi senza più spa¬ 
zio con altro testo da inserire e dover aprire così un nuo¬ 
vo file. 

Ulteriori informazioni possono essere richieste alla 
Paolini, via Ostiense 48, Roma, telefono 06/5755006. 

•Orbiter 

Sull’onda del successo dei simulatori di volo la Spe- 
ctrum Holobyte, famosa software house statunitense, ha 
sviluppato un programma di simulazione dello SpàCe 
Shuttle. 

Orbiter, così è stato battezzato il nuovo gioco, chiede 
all’inzio di fissare i parametri della missione a cui è de¬ 
stinato il viaggio nelle orbite spaziali. E’ possibile fissa¬ 
re obiettivi come la costruzione di stazioni spaziali, o la 
riparazione di satelliti danneggiati o solo un semplice 
viaggio di esplorazione nello spazio. I comandi sono tut- 
t’altro che semplici: un infinito numero di controlli e in- 



r é File Game Uietus Special Communicetian Mission 



45 



















































































































































Un mouse. 

La sua Mouscotte. 



Niente più segni sulla scrivania. 

E una superficie liscia, ideale, appositamente 
studiata per assicurare la massima scorrevolezza 
ed efficienza al mouse. Sotto, uno strato di gomma: 
la Mouscotte non si sposta. Chiedi Mouscotte ai 
migliori Computer Shop Apple. Oppure richiedilo 
direttamente a Editronica usando il tagliando di 
questa pagina. 


Per ricevere Mouscotte basta compilare e spedire subito questo 
tagliando a Editronica Sri, Corso Monforte 39, 20122 Milano. 

r -, 

| □ Speditemi subito Mouscotte. Accludo assegno non trasferibile 

intestato a Editronica Srl di lire 29.500 comprensive di Iva e 
| spese di spedizione al mio indirizzo. 

□ Speditemi subito Mouscotte. Accludo ricevuta di versamento di 
| lire 29.500 sul conto corrente postale n. 19740208 intestato a 

Editronica Srl. 

□ Speditemi subito N.Mouscotte. Accludo ricevuta di 

versamento / assegno di lire. 

I 


I 

I 

I 


□ Desidero fattura. 

Il mio Codice fiscale/Partita Iva è:. 

Cognome . Nome 



dicatori riempie lo schermo del Mac, 
e, subito sopra il pannello di control¬ 
lo, rimmensità dello spazio attraver¬ 
sa la cabina di comando. Orbiter co¬ 
sta 146 mila lire, iva 9% eslusa, e 
può essere richiesto alla Bits & 
Bytes, via S.Francesco d'Assisi 8, 
'Milano. Telefono 02/8376207. 

•I know it's 
here somewhere 

Prodotto dalla Hayden software, la 
software house produttrice della serie 
Da Vinci e della scacchiera Sargon 
III, questo programma dal nome in¬ 
terminabile (letteralmente: so che è 
qui da qualche parte) risponde alle pu¬ 
re esigenze di archiviazione dati. 
Semplice per impostazione, econo¬ 
mico nel prezzo ma limitato rispetto 
ad altri data base in commercio, è de¬ 
dicato a piccole utenze che necessita¬ 
no di uno strumento veloce e affida¬ 
bile. Il discc* programma comprende 
31 esempi di file format che posso¬ 
no essere comunque variati in base 
alle esigenze dell’utente. Le ricerche 
possono essere effettuate in chiavi 
multiple ed è possibile fare riferi¬ 
mento fino a cinque file contempora¬ 
neamente. In Italia I know it’s where 
somewhere è distribuito nella versio¬ 
ne originale dalla Bits & Bytes, via 
San Francesco d’Assisi 8, Milano, 
tei. 02/ 8376207. Il prezzo di listino 
è di 180 mila lire, iva 9% esclusa. 

•Calculator 
construction kit 

Ai novizi del Macintosh vedere 
spuntare fuori dalla melina la calcola¬ 
trice sembra una magia. Poi però ci 
si rende conto che le operazioni pos¬ 
sibili sono ben poche, i quattro se¬ 
gni matematici e nulla più. Funzio¬ 
ni che comunemente si trovano nel¬ 
le più limitate macchine per calcolo 
comepercentualeo radice quadrata di¬ 
ventano operazioni ardue e complica¬ 
te da effettuare in punta di mouse. Il 
programma Calculator construction 
kit permette però di creare su misura 
la propria calcolatrice, con le funzio¬ 
ni che si desiderano: ovviamente au¬ 
mentando le operazioni richieste alla 
macchina per calcolo aumenta di pa¬ 
ri passo la memoria occupata. Calcu¬ 
lator construction kit costa 276 mila 
lire, iva 9% esclusa, e in Italia è di¬ 
stribuito da Software Shop, corso 
XXII Marzo 33, Milano, telefono 
02/7387444. 


Indirizzo. 

i 


i 


CaD 


Città 


Prnv 
















Tutto sta nello scagliare atomi nella scatola nera indovinando la posizione 
degli atomi nascosti: gli effetti di riflessione, reiezione e assorbimento 
presentano nuove sfide ogni volta che si affronta questo gioco 
che è, a tutti gli effetti, il gioco dell'ignoto. 


Sfida atomica 
nella scatola nera 


Scatola nera è un gioco di deduzio¬ 
ne. Si gioca con un riquadro di 8x8, 
il cui interno non è visibile. Il com¬ 
puter dispone tanti atomi nel riqua¬ 
dro (la scatola) quanti noi abbiamo 
deciso (da uno a otto) e il giocatore 


deve sparare atomi nella scatola da 
varie posizioni fino a scoprire la po¬ 
sizione di ciascun atomo nascosto. 
La difficoltà del gioco è naturalmen¬ 
te maggiore in relazione al numero 
degli atomi nascosti. 


Listato 1. Scatola nera 

DOS 3.3 

in ppm _ _ _ 


ìu KLra — - 

20 REM SCATOLA NERA 

30 REM DI GARY KNOX 

40 REM COPYRIGHT (C) 1986 

Apple Ile 

Apple Ile 


50 REM BY APPLICANDO & 

60 REM MICROSPARC, INC 

70 REM - 

80 GOSUB 1720 

90 DEF FN R(Q) = INT (8 * RND (3)) +1 
100 HOME : VTAB 12 

110 INPUT "INDICA IL NUMERO DI ATOMI (FINO A 8) ";N 

120 IF N < = 0 OR N > 8 THEN VTAB 4: PRINT "RIPROVA": CALL - 9 

58: VTAB 12: GOTO 110 
130 DI = INT ((N + 3) / 4) 

140 FOR K = 1 TO 8 : A(K) = 0:B(K) = 0:: NEXT 
150 A(l) = FN R (3) : B (1 ) = FN R(3) 

160 FOR K = 2 TO N 

170 CX = FN R(3):CY = FN R(3) 

180 FOR L = 1 TO K - 1 

190 IF A(L) = CX AND B(L) = CY THEN 170 

200 NEXT L 

210 A (K) = CX : B (K) = CY 
220 NEXT K 
230 HOME 
240 REM 

250 REM **DISEGNA LA SCATOLA NERA** 

260 GOSUB 1610 

270 VTAB 2: HTAB 15: PRINT "LATO 1" 

280 VTAB 9: PRINT "LATO 4" 

290 VTAB 9: HTAB 29: PRINT "LATO 2" 

300 VTAB 17: HTAB 15: PRINT "LATO 3" 

310 VTAB 18: CALL - 958: HTAB 1 

320 HTAB 1: VTAB 19: PRINT "PUNTI = "PT 

330 REM 

340 REM **.INDICA LA POSIZIONE DI SPARO** 

350 VTAB 21: INPUT "INDICA IL NUMERO DEL LATO ";S 
360 IF S > 4 OR S < 0 THEN 310 
370 PT = PT - INT (20 / DI) 

380 VTAB 21: CALL - 958: INPUT "INDICA LA POSIZIONE SU QUEL LATO 
" ; P 

390 IF P > 8 OR P < 0 THEN 380 
400 INVERSE 

410 GOSUB 980: GOSUB 1090: GOSUB 1500 
420 PRINT P 
430 FF = 0 

44 0 TX = X + XD :TY = Y + YD (Continua) 


All'inizio il programma dà la pos¬ 
sibilità di scegliere se cominciare su¬ 
bito a giocare o avere una descrizio¬ 
ne completa del gioco; chiede poi il 
numero degli atomi da nascondere 
nella scatola. 

Dopo che la scatola è stata disegna¬ 
ta sullo schermo e vi sono stati na¬ 
scosti gli atomi, ci viene chiesto da 
quale lato e da quale posizione lungo 
quel lato vogliamo sparare nella sca¬ 
tola. Il computer mostrerà solo la 
posizione di partenza dalla quale l'a¬ 
tomo lanciato entra nella scatola, e 
la posizione finale dalla quale l'ato¬ 
mo emerge dalla scatola. Sulla base 
dei risultati si può cercare di indovi¬ 
nare dove sia situato un atomo na¬ 
scosto, sparare un altro atomo nella 
scatola o abbandonare. Se si decide 
di abbandonare, il computer mostre¬ 
rà dove erano nascosti gli atomi. 





47 


















Come funziona 
il programma 

Il programma utilizza solo la vi¬ 
sualizzazione del testo e non fa al¬ 
cun ricorso alla grafica. Tutto il mo¬ 
vimento e tutto il disegno sullo 
schermo sono fatti in modo testo. 
Questo fatto può risultare molto uti¬ 
le a chi volesse osservare e appren¬ 
dere qualche interessante tecnica di 
programmazione. 

Il programma è suddiviso nelle 
procedure seguenti: 

i 90-320 Nasconde gli atomi e stampa 
il riquadro sullo schermo. 

350-420 Riceve e stampa la posizio¬ 
ne di sparo, gli incrementi di moto e 
le coordinate deH’atomo sparato. 

^ 440480 Vede se l’atomo lanciato 
sia stato assorbito. 

500-560 Riceve le istruzioni usate 
per controllare la riflessione, l’assor¬ 
bimento eccetera. 

590-690 Controlla le riflessioni, le 
reiezioni e gli assorbimenti. 

710-820 Stampa l’atomo che emer¬ 
ge, il totale di punti e le scelte. 
,>830-920 Azzera i lati d'inizio e di u- 
scita per fatomo a causa di un cam¬ 
biamento di direzione. 

\ 980-1060 Calcola le posizioni di 
^stampa nel riquadro. 

^1090-1170 Riceve gli incrementi di 
moto per l’atomo lanciato, 
yl200-1230 Stampa le posizioni del¬ 
l’atomo nascosto per il giocatore che 
abbandona. 

^250-1330 Introduce la congettura e 
vede se il giocatore aveva già fatto 
l'ipotesi della stessa locazione. 
1340-1470 Vede se la congettura era 
esatta e stampa i risultati. 

1500-1580 Riceve le coordinate d'ini¬ 
zio del tiro. 

1610-1640 Stampa i numeri del ri¬ 
quadro. 

1670-1690 Cambia la direzione quan¬ 
do un atomo viene riflesso. 
1720-2450 Dà le istruzioni e le re¬ 
gole del gioco. 

2460-2470 La routine di dimostrazio¬ 
ne del tiro. 

2480 Moto rettilineo per la dimostra¬ 
zione di tiro. 

2490-2540 Moto riflesso per la di¬ 
mostrazione di tiro. 

Vediamo ora quali sono le princi¬ 
pali variabili utilizzate e qual è la lo¬ 
ro funzione nel programma: 

A( ) Coordinate X degli atomi na¬ 
scosti. 

B( ) Coordinate Y degli atomi na¬ 
scosti. 


450 IF FF = 1 THEN 490 
460 FOR K = 1 TO N 

470 IF A( K) = TX AND B (K) = TY THEN ZX$ = "ASSORBITO": GOTO 750 

480 NEXT K 

490 RESTORE 

500 FOR K = 1 TO S 

510 FOR L = 1 TO 4 

520 READ CX(L), CY(L) 

530 DATA -1,0,1,0,-1,1,1,1, 0,-1, 0,1, -1,-1,-1,1 
540 DATA -1,0,1,0,1,-1, -1,-1,0,-1,0,1, 1, 1, 1,-1 
550 NEXT L 

560 NEXT K 

570 IF FF = 1 THEN 630 

580 FF = 1 

590 FOR K = 1 TO N 

600 IF A(K) = TX + CX(1) AND B(K) = TY + CY(1) THEN ZX$ = "RIFLES 
SO INDIETRO": GOTO 740 

610 IF A (K) = TX -f CX (2) AND B ( K) = TY + CY(2) THEN ZX$ = "RIFLES 
SO INDIETRO": GOTO 740 
620 NEXT K 

630 TT = 0: FOR K = 1 TO N 

640 IF A ( K) = TX + XD AND B(K) = TY + YD THEN ZX$ = "ASSORBITO": 
GOTO 750 

650 IF A(K) = TX + CX(3) AND B(K) = TY + CY(3) THEN ZX$ = "RIFLES 
SO":TT - TT + 3 

660 IF A( K) = TX + CX(4) AND B(K) = TY + CY(4) THEN ZX$ = "RIFLES 
SO":TT = TT + 1 
670 NEXT K 

675 IF TT = 1 THEN 880 

676 IF TT = 3 THEN 830 

677 IF TT THEN 930 , 

680 X = TX :Y = TY 

690 IF X = 0 OR X = 9 OR Y = 0 OR Y = 9 THEN 710 
700 GOTO 440 

710 S = (S + 2) - INT (*(S + 2) / 4) * 4 
720 IF S = 0 THEN S = 4 

730 IF ZX$ = "" THEN ZX$ = "PASSATO ATTRAVERSO" 

740 FLASH : GOSUB 980: PRINT P 

750 HTAB 15: VTAB 23: INVERSE : PRINT ZX$:ZX$ = "" : FOR ZZ = 1 TO 
2000: NEXT ZZ: NORMAL 

760 HTAB 1: VTAB 19: CALL - 958: PRINT "PUNTI = "PT 

770 VTAB 22: PRINT " - " 

780 VTAB 21: CALL - 868: INPUT "F=FINIRE S=SPARARE G=SUPPORRE (S 
CEGLI ) " ; PQ$ 

790 IF PQ$ = "S" THEN GOSUB 1610: GOTO 310 

800 IF PQ$ = "F" THEN GOSUB 1610: GOTO 1200 

810 IF PQ$ = "G" THEN 1250 

820 GOTO 780 

830 TT = 3: GOSUB 1670 

840 GOSUB 1090 

850 IF ABS (XD) = 1 THEN P = TY: GOTO 680 

860 P = TX 

870 GOTO 680 

880 TT = 1: GOSUB 1670 

890 GOSUB 1090 

900 IF ABS (XD) = 1 THEN P = TY: GOTO 680 

910 P = TX 

920 GOTO 680 

930 TT = 2: GOSUB 1670 

940 GOSUB 1090 

950 GOTO 680 

960 REM 

970 REM ** CALCOLA LA POSIZIONE DELLA SCATOLA** 

980 ON S GOTO 990,1010,1030,1050 
990 VTAB 5: HTAB (2 * P + 8) 

1000 GOTO 1060 

1010 HTAB 26: VTAB (P + 5) 

1020 GOTO 1060 

1030 VTAB 14: HTAB (2 * P + 8) 

1040 GOTO 1060 
1050 VTAB (P + 5) : HTAB 8 
1060 RETURN 
1070 REM 

1080 REM * * INCREMENTI DI MOTO** 

1090 ON S GOTO 1100,1120,1140,1160 

1100 XD = 0 :YD = 1 

1110 GOTO 1170 

1120 XD = - 1 :YD = 0 

1130 GOTO 1170 

1140 XD = 0 :YD = - 1 

1150 GOTO 1170 

1160 XD = 1 :YD = 0 

1170 RETURN 

1180 REM 

1190 REM **STAMPA TUTTI GLI ATOMI** 

1200 FOR K = 1 TO N 

1210 HTAB (2 * A (K) + 8): VTAB (B(K) + 5): PRINT "*" 

1220 NEXT K 

1230 VTAB 20: HTAB 1: CALL - 958: VTAB 21: PRINT "ECCO LA POSIZI 
ONE DEGLI ATOMI!": FOR ZZ = 1 TO 2000: NEXT : GOTO 1440 
1240 REM 


48 







1250 

1260 

1270 

1280 

1290 

1300 

1310 

1320 

1330 

1340 

1350 

1360 

1370 

1380 

1390 

1400 

1410 

1420 

1430 

1440 

1450 

1460 

1470 

1480 

1490 

1500 

1510 

1520 

1530 

1540 

1550 

1560 

1570 

1580 

1590 

1600 

1610 

1620 

1630 

1640 

1650 

1660 

1670 

1680 

1690 

1700 

1710 

1720 

1730 

1740 

1750 

1760 

1770 

1780 

1790 

1800 

1810 

1820 

1830 

1840 

1850 

1860 

1870 

1880 

1890 

1900 

1910 

1920 

1930 

1940 

1950 

1960 

1970 


REM * ^CONGETTURA E CONTROLLO* * 

VTAB 20: CALL - 958 
NORMAL : VTAB 21 
INPUT "INDICA LA RIGA ";R 
PRINT 

INPUT "INDICA LA COLONNA ";C 
FOR W9 = 1 TO CO 

IF C = C(W9) AND R = D(W9) THEN 1410 
NEXT W9 

FOR K = 1 TO N 

IF A(K) = C AND B(K) = R THEN INVERSE : HTAB 22: VTAB 22: P 
RINT "ESATTO": FOR EE = 1 TO 3000: NEXT : CO = CO + 1 :PT - PT 
+ INT (500 * DI): GOTO 1370 
GOTO 1390 

HTAB (2 * A(K) + 8): VTAB (B(K) + 5): NORMAL : PRINT "*" 


GOSUB 1610: HTAB 1: VTAB 20: 


1 TO 


- 958: GOSUB 1610:PT = PT - 100 * DI: 


- 958: VTAB 21: PRINT "LE HAI INDOVIN 


= "PT: 


HTAB 1: 
S O N 


VTAB 22 
?" ;A$: IF 


LEFT$ (A$,1) 


C(CO) = C:D (CO) = R: NORMAL 
ALL - 958: GOTO 1420 
NEXT K 

INVERSE : HTAB 22: VTAB 22: PRINT "SBAGLIATO": FOR ZZ 
3000: NEXT : NORMAL 
HTAB 1: VTAB 20: CALL 
GOTO 760 

IF CO < > N THEN 760 

VTAB 21: HTAB 1: CALL 
ATE TUTTE ! !" 

VTAB 19: PRINT "PUNTI 
PRINT : INPUT "GIOCHI ANCORA? 

= "S" THEN CLEAR : GOTO 90 
FOR ZZ = 1 TO 1000: NEXT : HOME : 

GOTO 310 
REM 

REM **COORDINATE DI TIRO** 

ON S GOTO 1510/1530,1550,1570 
X - P:Y = 0 
GOTO 1580 
X = 9 : Y = 

GOTO 1580 
X = P : Y = 

GOTO 1580 
X = 0 : Y = P 
RETURN 
REM 

REM * * STAMPA NUMERI RIQUADRO** 

HTAB 10: VTAB 5: FOR X = 1 TO 8 : PRINT X" 

: VTAB 6 

FOR X = 1 TO 8: HTAB 8: PRINT X;: HTAB 26: PRINT X: NEXT X: 
VTAB 14: HTAB 10 

FOR X = 1 TO 8: PRINT X" ";: NEXT X 

RETURN 

REM 

REM **CAMBIA DIREZIONE** 

S = (S + TT) - INT ( (S + TT) 


9 


NEXT X: PRINT 


/ 4) 


IF S = 0 THEN 
RETURN 
REM 

REM **ISTRUZIONI DI GIOCO** 

HOME 

VTAB 10: HTAB 14: PRINT "SCATOLA NERA" 

VTAB 12: HTAB 19: PRINT "DI" 

VTAB 14: HTAB 15: PRINT "GARY KNOX": VTAB 20: PRINT "(C) 198 
6 BY APPLICANDO & MICROSPARC,INC." 

VTAB 24: HTAB 5: INPUT "PREMI RETURN PER CONTINUARE..";PP$ 
HOME : VTAB 12: INPUT "ISTRUZIONI S-SI* N=NO ";PP$ 

IF LEFT$ (PP$,1) = "N" THEN 2440 
SPEED= 200: HOME : VTAB 5 

PRINT " IL COMPUTER METTERÀ' GLI ATOMI IN": PRINT : HTAB 3: 
PRINT "UNA SCATOLA NERA, IN MODO CASUALE." 

PRINT " DEVI INDOVINARE DOVE SONO!" 

PRINT " DEVI SPARARE ATOMI NELLA SCATOLA E" 

HTAB 2 

IL COMPUTER MOSTRERÀ* DOVE" 

HTAB 16 

VANNO A FINIRE." 


PRINT 
PRINT 
PRINT 
PRINT 
PRINT 
PRINT 
GOSUB 2460 

HOME : VTAB 5: HTAB 5: PRINT "QUANDO SCAGLI UN ATOMO NELLA " 

: CALL - 922: PRINT "SCATOLA NERA, SARA*_" 

CALL - 922: HTAB 15: PRINT "ASSORBITO": CALL - 922: HTAB 1 
5: PRINT "RIFLESSO": CALL - 922: HTAB 12: PRINT "O RESPINTO 


GOSUB 2460 

HOME : PRINT "L'ATOMO E* ASSORBITO SE SPARI": CALL - 922: P 
RINT "DIRETTAMENTE A UN ATOMO NELLA SCATOLA." 

VTAB 5: GOSUB 1610: HTAB 14: VTAB 9: PRINT "*": INVERSE : HT 
AB 14: VTAB 14: PRINT "3" 

GOSUB 2470 
QQ = 10: GOSUB 2480 
FOR K - 1 TO 1000: NEXT 
GOSUB 2460 

HOME : PRINT "L'ATOMO ATTRAVERSERA' LA": PRINT "SCATOLA SE N 
ON INCONTRA UN ATOMO." 

(Continua) 


C Colonna della supposta posizione 
deH'atomo nascosto. 

CO Numero delle congetture esatte. 
CX Coordinata X temporanea dell’a- 
tomo nascosto. 

CY Coordinata Y temporanea dell’a- 
tomo nascosto. 

CX( ) Cambiamento in X (compren¬ 
de la direzione). 

CY( ) Cambiamento in Y (compren¬ 
de la direzione). 

DI Fattore di difficoltà per il calcolo 
dei punti. 

FF Avvertimento per lo spostamen¬ 
to del primo atomo lanciato. 

N Numero degli atomi nascosti. 

P La posizione di stampa per un ato¬ 
mo su un lato del riquadro. 

PP Spazio di partenza per l’atomo 
lanciato nella dimostrazione. 

PT Punti della partita. 

QQ Ultimo spazio al quale l'atomo 
lanciato si sposta nella dimostra¬ 
zione. 

R Numero di riga supposto per la 
posizione delfatomo nascosto. 

RR Passi di aumento o diminuzione 
per il moto dell'atomo nella dimo¬ 
strazione. 

S Lato dal quale il giocatore lancia 
l'atomo. 

TT Fattore di calcolo per il lato 
quando l'atomo lanciato cambia dire¬ 
zione. 

TX Coordinata X temporanea dell'a¬ 
tomo lanciato. 

TY Coordinata Y temporanea dell'a¬ 
tomo lanciato. 

X Coordinata X delfatomo lanciato. 
Y Coordinata Y dell’atomo lanciato. 
XD Direzione X e distanza per lo 
spostamento dell’atomo lanciato. 

YD Direzione Y e distanza per lo 
spostamento dell’atomo lanciato. 

ZX$ Descrizione dei risultati quando 
l’atomo è lanciato nella scatola. 

Caratteristiche speciali 
del programma 

La linea 130 gestisce i due livelli 
di gioco: dà un fattore di difficoltà 1 
quando il giocatore vuole nascondere 
da uno a quattro atomi nella scatola 
nera, un fattore di difficoltà 2 quando 
sono nascosti nella scatola da cinque 
a otto atomi. Il fattore è usato nelle 
formule che si trovano nelle linee 
370, 1350 e 1410 al fine di calcolare 
i punti guadagnati o perduti dal gio¬ 
catore. 

Le linee 490-560 impiegano un’in¬ 
teressante tecnica per rendere possibi¬ 
le tener traccia delle direzioni che il 


49 


1980 

1990 

2000 

2010 

2020 

2030 

2040 


2050 

2060 

2070 

2080 

2090 

2100 


2110 

2120 

2130 

2140 

2150 

2160 


2170 

2180 

2190 


2200 

2210 

2220 

2230 

2240 

2250 

2260 


2270 

2280 

2290 

2300 

2310 

2320 

2330 

2340 

2350 

2360 


2370 

2380 

2390 

2400 

2410 


2420 

2430 

2440 

2450 

2460 

2470 

2480 


2490 


2500 

2510 

2520 

2530 

2540 


VTAB 5: GOSUB 1610: HTAB 18: VTAB 9: PRINT INVERSE : HT 

AB 14: VTAB 14: PRINT n 3" 

GOSUB 2470 

QQ = 6: GOSUB 2480 

VTAB 5: HTAB 14: FLASH : PRINT "3": NORMAL 
FOR K = 1 TO 1000: NEXT 
GOSUB 2460 

HOME : PRINT "L'ATOMO CHE SCAGLI E' RIFLESSO": PRINT "A SINI 
STRA QUANDO SI AVVICINA A UN": PRINT "ATOMO IN DIAGONALE ALL 
A SUA DESTRA." 

VTAB 5: GOSUB 1610: HTAB 16: VTAB 9: PRINT INVERSE : HT 

AB 14: VTAB 14: PRINT "3" 

GOSUB 2470 

QQ = 10: GOSUB 2480 

QQ = 9:RR = - 1 :PP - 13: GOSUB 2490 

FOR K = 1 TO 1000: NEXT : NORMAL : GOSUB 2460 

HOME : PRINT "L'ATOMO CHE SCAGLI E* RIFLESSO": PRINT "A DEST 

RA QUANDO SI AVVICINA A UN": PRINT "ATOMO IN DIAGONALE ALLA 

SUA SINISTRA." 

VTAB 5: GOSUB 1610: HTAB 12: VTAB 9: PRINT INVERSE : HT 

AB 14: VTAB 14: PRINT "3" 

GOSUB 2470 

QQ = 10: GOSUB 2480 

QQ = 25 :RR = 1 :PP = 15: GOSUB 2490 

FOR K = 1 TO 1000: NEXT : NORMAL : GOSUB 2460 

HOME : PRINT "L'ATOMO CHE SCAGLI E' RESPINTO": PRINT "SE E' 

CONTRO UNA PARETE E": PRINT "SPARI NELLA SCATOLA ACCANTO A E 

SSO." 

VTAB 5: GOSUB 1610: HTAB 12: VTAB 13: PRINT INVERSE : H 

TAB 14: VTAB 14: PRINT "3" 

GOSUB 2470 

HTAB 14: VTAB 13: PRINT " ": FOR J = 1 TO 500: NEXT : NORMAL 
: HTAB 14: VTAB 13: PRINT " ": HTAB 14: VTAB 14: FLASH : PR 
INT "3" 

FOR K = 1 TO 1000: NEXT : NORMAL : GOSUB 2460 

HOME : PRINT "CON PIU' DI UN ATOMO NELLA SCATOLA": PRINT "DI 

VENTA INTERESSANTE." 

VTAB 5: GOSUB 1610: HTAB 12: VTAB 9: PRINT HTAB 22: VTA 

B 9: PRINT INVERSE : HTAB 14: VTAB 14: PRINT "3" 

GOSUB 2470 

QQ - 10: GOSUB 2480 

QQ = 20 :RR = 1:PP = 15: GOSUB 2490 

FOR K = 11 TO 13: INVERSE : HTAB 20: VTAB K: PRINT " ": FOR 
J = 1 TO 500: NEXT : NORMAL : HTAB 20: VTAB K: PRINT " NE 
XT K: FLASH : HTAB 20: VTAB 14: PRINT "6" 

FOR K = 1 TO 1000: NEXT K: NORMAL : GOSUB 2460 
HOME : VTAB 7 

PRINT "QUANDO SEI PRONTO A INDOVINARE DOVE" 

PRINT : PRINT "UN ATOMO E' NASCOSTO_" 

PRINT : PRINT "TI SARA' CHIESTO IL NUMERO DI RIGA." 

PRINT : PRINT "(ORIZZONTALE) SPEED= 100: INVERSE : FOR 

ZZ = 1 TO 20: PRINT " NEXT : SPEED= 200: NORMAL : PRINT 

GOSUB 2460 

HOME : VTAB 7: PRINT "POI TI SARA' CHIESTO IL..." 

PRINT : PRINT "NUMERO DI COLONNA DELL'ATOMO NASCOSTO." 

PRINT : PRINT "(VERTICALE)";: INVERSE : SPEED= 100: FOR ZZ - 
11 TO 20: HTAB 13: VTAB ZZ: PRINT " ": NEXT : SPEED= 200: N 
ORMAL 
GOSUB 2460 

HOME : VTAB 7: PRINT "IL SISTEMA DI PUNTI E'..." 

VTAB 10: HTAB 18-: PRINT "1-4 ATOMI"; SPC ( 3); "5-8 ATOMI" 

HTAB 18: PRINT "-"; SPC ( 3);" -" 

PRINT : PRINT "SPARA NELLA SCATOLA";: HTAB 21: PRINT - 20; 
SPC( 9); - 10: PRINT : PRINT "NON HAI INDOVINATO";: HTAB 20: 
PRINT - 100; SPC( 8); - 200 

PRINT : PRINT "HAI INDOVINATO";: HTAB 21: PRINT 500; SPC( 8) 

; 1000 : GOSUB 2460 

HOME : VTAB 10: PRINT "VUOI LA RIPETIZIONE": PRINT : PRINT " 
DELLA SPIEGAZIONE? S O N";: INPUT A$: IF LEFTS (A$,l) = "S 
" THEN 1790 
SPEED= 255: RETURN 
REM 

VTAB 24: HTAB 5: INPUT "PREMI RETURN PER CONTINUAREPP$: 
RETURN 

VTAB 20: PRINT "PREMI IL TASTO 'S' PER SPARARE...";: GET PP$ 
: RETURN 

FOR K = 13 TO QQ STEP - 1: INVERSE : HTAB 14: VTAB K: PRINT 
" ": FOR J = 1 TO 250: NEXT J: HTAB 14: VTAB K: NORMAL : PR 
INT " ": NEXT K: RETURN 

FOR K = PP TO QQ STEP RR: HTAB K: VTAB 10: INVERSE : PRINT " 
": FOR J = 1 TO 250: NEXT J: NORMAL : HTAB K: VTAB 10: PRIN 
T " ": NEXT K 
IF QQ = 20 THEN 2540 
IF RR = 1 THEN HTAB 26: GOTO 
HTAB 8 

VTAB 10: FLASH : PRINT "5" 

RETURN 


2530 


Checksum dei listato 1 

NOME FILE: 

SCATOLA NERA 

TIPO: A 


LUNGHEZZA: 

1491 

CHECKSUM : 

70 


computer deve controllare per le ri¬ 
flessioni e gli assorbimenti. 

Dato che queste direzioni dipendo¬ 
no dal lato dal quale l’atomo viene 
lanciato, si adopera un loop per giun¬ 
gere ai numeri esatti nella lista dei 
dati per tutti i lati possibili della sca¬ 
tola. 

La linea 710 usa un algoritmo di 
resto per calcolare il lato sul quale 
ratomo emerge dalla scatola. Quan¬ 
do i lati sono uguali a 1, 2, 3 e 4 la 
formula darà rispettivamente come ri¬ 
sultato 3, 0, 1 e 2. Si deve usare 
un’istruzione IF per cambiare lo 0 in 
4. Questo algoritmo elimina la ne¬ 
cessità di più istruzioni IF. 

La linea 1670 impiega la stessa 
tecnica per calcolare il lato dal quale 
l'atomo emerge a un cambio di dire¬ 
zione. La variabile TT è posta ugua¬ 
le a 1 quando l’atomo viene riflesso 
a sinistra! E' posta uguale a 3 quan¬ 
do l'atomo è riflesso a destra. Il va¬ 
lore di S e TT sono usati a linea 
1670 per determinare il nuovo valo¬ 
re della variabile S. 

I loop variabili che si trovano nel¬ 
la subroutine delle linee 2480 e 
2490 accorciano parecchio la sezione 
delle regole e delle istruzioni. Essi 
sono utilizzati in ogni fase delle i- 
struzioni. 

I possibili 
miglioramenti 

Si potrebbe realizzare un'interes¬ 
sante variante della Scatola nera in¬ 
grandendo il riquadro e facendo ruota¬ 
re intorno a un nucleo centrale elet¬ 
troni nascosti. Il giocatore cerchereb¬ 
be di determinare la posizione di o- 
gni nucleo sparando elettroni nella 
scatola. 

Gli elettroni scagliati potrebbero 
essere riflessi dagli elettroni rotanti 
intorno al nucleo oppure intrappola¬ 
ti dal nucleo. 

Un'altra variante molto promet¬ 
tente del gioco potrebbe consistere 
nell'aggiunta di una terza dimensio¬ 
ne alla Scatola nera. Così facendo si 
creerebbe sicuramente qualche inte¬ 
ressante problema di programmazio¬ 
ne tridimensionale. 

> \ 

Questo programma è disponibile 

su dischetto. L’elenco, i prezzi 
e le modalità d’ordine di questo 
e degli altri dischetti disponibili 
sono riportati nella rubrica 
Disk Service. 

N J 


© By Nibble e Applicando 


50 









CRONOMETRO 


L'orologio del sistema operativo può servire per creare nuovi accessori: 
con i bottoni dell'MS diventa un cronometro capace di registrare 
i tempi parziali al sessantesimo di secondo. 


Ferma il tempo 
quando vuoi 


L’obiettivo è quello di poter calco¬ 
lare e mostrare su video tempo tota¬ 
le e tempi parziali con una precisio¬ 
ne al decimo di secondo, ed essere in 
grado di tenere un promemoria degli 
eventi a cui si riferiscono i tempi 
parziali, con il cronometro sempre 
in funzione, così da poter avere sot- 
t'occhio le fasi di una corsa mentre 
il programma si preoccupa del tem¬ 
po finale. 

Cronometro, così si chiama il pro¬ 
gramma, consente di dare nomi ai 
tempi parziali (per esempio "auto 32 
fuori pista”) usando un edit field. So¬ 
no usati bottoni per controllare le 
funzioni del cronometro (stop, via e 
lap), e due finestre, una per il crono¬ 
metro e una per registrare i tempi 
parziali. 

La figura 1 mostra il tipico di¬ 
splay del programma, compresi i no¬ 
mi dei tempi parziali attribuiti dal 
programma (Tempo N. x) e i nomi 
definiti nell’edit field nella finestra 
del cronometro. 

Cronometro tiene correttamente i 
tempi, anche quando il display sem¬ 
bra esitare a causa degli eventi in cor¬ 
so. La precisione dell’orologio è 
mantenuta dal sistema operativo in 
tempo reale: il programma infatti si 
limita a effettuarne la lettura. 


Alcune righe del listato sono 
state spezzate per esigenze di 
impagmazione: 
quando incontrate il simbolo • 
continuate a battere SENZA 
PREMERE <return> 



Listato 1. Cronometro 



* Cronometro 

1 By Bruce R. Land - Copyright ©1986 
' By Applicando & MicroSPARC, Ine. 

' Microsoft BASIC 2.0 e 2.1 (versione binaria) 

CLEAR,7000,2000 
DEFSNG a-z 

'definizione delle costanti per usare il ciclo di clock del sist 
ema operativo 

'con precisione al sessantesimo di secondo 

TickHigh=&Hl6A : TickMed2=&Hl6B : TickMedl=&H16C : TickLow 
=&H16D 

MultHigh=2 A 24 : MultMed2=2 A l 6 : MultMedl = 2 /v 8 


Uso del programma 
e caricamento 


'inizializza gli interrupt associando i nomi delle subroutine ag • 
li eventi 

ON TIMER(1) GOSUB TimerEvent 
ON MENU GOSUB MenuEv^nt 
ON DIALOG GOSUB DialogEvent 


Per utilizzare il programma sce¬ 
gliete il formato orario che preferite, 
24 ore o 12 ore, dal menu TEMPI. 
L’altra opzione in questo menu è FI- 


TogliDialoghi 'Attende che non ci siano eventi in corso 

' definizioni delle finestre e delle costanti per le finestre 
TimeWindow=l : LapWindow=2 

(Continua) 


51 

























NE, per terminare l’esecuzione e tor¬ 
nare in MS Basic. 

Fate partire il cronometro con il ta¬ 
sto VIA. Notate che il cronometro 
parte effettivamente quando rilasciate 
il bottone del mouse. La prima vol¬ 
ta che darete il run su un Macintosh 
128K noterete che l’ingresso in azio¬ 
ne del drive causa una leggera inaccu¬ 
ratezza nei tempi; dopo che la parte 
di codice MS Basic necessaria sarà 
presente in memoria, però, il proble¬ 
ma non si porrà più. Il cronometro 
partirà, e potrà essere fermato con il 
bottone STOP. La ripartenza azzera 
automaticamente il cronometro. 

Mentre il cronometro è in fuzione, 
basta fare un click nel bottone LAP 
per registrare un tempo parziale nel¬ 
l'apposita finestra. Il nome attribui¬ 
to al tempo parziale dipende dalle 
modifiche effettuate nell'edit field. 
Se non avete indicato alcun nome 
viene attribuita automaticamente u- 
na nuova etichetta, se invece avete 
dato l'ok nel campo Nome OK, o a- 
vete premuto return, allora verrà usa¬ 
to il nome da voi scelto. 

Il nome all’interno del campo può 
essere modificato con i tradizionali 
comandi stile MacWrite: taglia, in¬ 
colla, seleziona. 

Potere usare sia la versione bina¬ 
ria, sia quella decimale dell'MS Ba¬ 
sic 2.0 o 2.1 per battere il program¬ 
ma del listato 1. Salvate il tutto 
con il nome Cronometro. 

Come funziona 
il cronometro 

La funzione TIMES dell'MS Basic 
fornisce l'ora esatta, con precisione 
al secondo. Ottenere un tempo par¬ 
ziale al decimo di secondo è difficile. 

Tuttavia, nella parte bassa della 
memoria, ci sono quattro locazioni 
che sono incrementate ogni sessante¬ 
simo di secondo durante l’interrupt 
per la ritraccia verticale dello scher¬ 
mo video (cioè quando il raggio di e- 
lettroni che attiva i punti dello scher¬ 
mo passa velocemente dall'angolo in¬ 
feriore destro a quello in alto a sini¬ 
stra del monitor, ogni sessantesimo 
di secondo). 

Il sistema può accumulare 2 32 /60 
secondi in esse a partire dall'accensio¬ 
ne del Macintosh, che corrispondono 
a circa due anni. 

Due anni sono un po' eccessivi 
per un cronometro, così si è deciso 
di considerare solo tre byte del conta¬ 


tore, per un massimo di 2 24 /60 se¬ 
condi, circa tre giorni. 

Il programma è stato concepito 
per usare le funzioni dell’MS Basic 
in grado di rendere al meglio l'am¬ 
biente Macintosh. In particolare si è 
fatto largo uso della abilità dell'MS 
Basic di eseguire particolari subrouti¬ 
ne quando avvengono determinati e- 
venti, esterni al programma. Il co¬ 
mando ON TIMER forza il salto a u- 
na subroutine una volta per secondo, 
ed è utilizzato per aggiornare l’orolo¬ 
gio. C'è un tipo di eventi che l'MS 


Basic riconosce come dialoghi, in 
grado anch'essi di forzare chiamate a 
una subroutine. Questi eventi segna¬ 
lano al programma che l'utente ha 
fatto qualcosa che richiede immedia¬ 
tamente attenzione (per esempio un 
click con il mouse). 

Il programma usa le funzioni di 
dialogo per controllare quando è sta¬ 
to premuto un bottone e quando l'e- 
dit field è stato completato. 

L'abilità del Mac di riconoscere 
questi eventi porta a uno stile di pro¬ 
grammazione detto appunto event 


TipoDocumento=l 

PushButton=l : Selezionato=2 : NonSelezionato=l : Inatt • 

ivo=0 

Box=l : Sinistra=l 

WINDOW LapWindow,"Tempi parziali",(256,50)-(500,300),TipoDocumento 
WINDOW TimeWindow,"Cronometro",(1,50)-(250,300),TipoDocumento 

'Definizione dei controlli nella TimeWindow per le funzioni del 
'cronometro. Il bottone LAP memorizza i tempi tra un click e l'a • 
lt ro 

'eseguito al suo interno. LapLabel permette di dare nomi ai temp • 
i parziali 

BUTTON 1, Selezionato, "STOP",(30,220)-(100,250),PushButton 
BUTTON 2, Nonselezionato, "VIA", (105,220)-(150,250),PushButton 
BUTTON 3, Nonselezionato, "Lap", (155,220)-(200,250),PushButton 
BUTTON 4, Nonselezionato, "Nome OK", (130,150)-(200,165), PushBu • 
tton 

EDIT FIELD 1, "Tempo parziale", (25,150)-(125,165), Box, Sinistra 

'definizione dei menu 
attivo=l 

MENU 6,0,attivo,"Tempi" 'Titolo del menu 

MENU 6,1,attivo,"Fine" 

MENU 6,2,attivo,"12 ore" 'Orologio a 12 ore 

MENU 6,3,attivo,"24 ore" 


TIMER ON 'attivazione degli interrupt 

DIALOG ON 
MENU ON 

'Quando non si verifica alcun evento aggiorna l'orologio 
'Nota: il cronometro funziona perfettamente anche se altri 
'eventi ostacolano l'aggiornamento della finestra! 
vero=-l : falso=0 

InFunzione=falso 'Alla partenza il cronometro è disatt • 

ivato 

StartTicks=0 

Bold=l : Geneva=l 

LOCATE 2,5 : PRINT "Ora esatta:" 

LOCATE 5,5 : PRINT "Cronometro:" 

CALL TEXTFACE(Bold) 

WHILE vero 'Nota: questo è un ciclo infinito 

WHILE InFunzione 'Quando GO è stato premuto 

GOSUB TickCount 'Lettura dell'orologio al 60/sec 

FinestraAttuale=WINDOW(1) 'Salva lo stato della fi • 

nestra 

WINDOW OUTPUT TimeWindow 

LOCATE 5,17 : CALL TEXTFACE(Bold) 

PRINT USING "#####.#"; (ticks-StartTicks)/60 
WINDOW OUTPUT FinestraAttuale 

WEND 

WEND 

DialogEvent: 'E' stato premuto un bottone o un edit field 

EventType=DIALOG(0) 

IF EventType=l THEN ButtonEvent 
IF EventType=6 THEN EditEvent 
RETURN 

ButtonEvent: 

ButtonId=DIALOG(1) 

ON Buttonld GOSUB StopButton,GoButton,LapButton,EditEvent 
RETURN 

StopButton: 

InFunzione=falso 'Ferma il cronometro 


52 


driven. Il programma attende che l’u¬ 
tente faccia qualcosa, risponde alla 
sua azione, poi attende che avvenga 
qualcosa d'altro. Nel nostro caso, 
quando non avviene nulla, il pro¬ 
gramma esegue l’aggiornamento del¬ 
l'orologio (se è attivato), altrimenti 
attende in un ciclo WHILE-WEND 
infinito. 

Ogni secondo il comando ON TI¬ 
MER chiama la routine TimerEvent 
per aggiornare l'ora del giorno sul vi¬ 
deo. Se premete un bottone o il ta¬ 
sto return nell'edit field dei tempi 


parziali, il comando ON DIALOG 
trasferisce immediatamente l'esecu¬ 
zione del programma alla subroutine 
DialogEvent per scoprire quale even¬ 
to è accaduto, e per rispondere corret¬ 
tamente a esso. 

Variabili e 

comandi di controllo 

Il comando DEFSGN fa sì che tut¬ 
te le variabili siano in singola preci¬ 
sione. Anche se questo è il formato 
standard, definire all'inizio del pro- 


RETURN 

GoButton: 

GOSUB TickCount 
StartTicks=ticks 
LapTicks=ticks 
ContaLap=l 
mpi parziali 

InFunzione=vero 

RETURN 


'Legge l'orologio del sistema 
'Inizializza il conteggio 
'Inizializza i tempi parziali 

'Inizializza i contatore dei te • 

'Partenza del cronometro 


LapButton: 

IF InFunzione=falso THEN RETURN 'Se il cronometro è fermo • 
niente parziali 

GOSUB TickCount 

TIMER STOP 'Disabilita interrupt per avere u • 

na stampa corretta 

FinestraAttuale=WINDOW(1) 

WINDOW OUTPUT LapWindow 
' Crea un nome per i tempi parziali 

IF LapIdFlag=falso THEN LapId$="Tempo N." + STRS(ContaLap) 
PRINT LapIdS;TAB(20) 

PRINT USING "#####.#"; (ticks-LapTicks)/60 
LapTicks=ticks 

ContaLap=ContaLap+l : LapIdFlag=falso 

WINDOW OUTPUT FinestraAttuale 
TIMER ON 
RETURN 

EditEvent: 

LapId$=EDIT$(1) 'Legge il nome del tempo parziale 

LapIdFlag=vero 
RETURN 

TimerEvent: 'Questa routine è eseguita ogni secondo 

FinestraAttuale=WINDOW(1) 

WINDOW OUTPUT TimeWindow 
ModTIME$=TIME$ 

'Controlla se il formato delle ore è a 12 o 24 

IF (VAL(LEFT$(ModTIMES,2))>12) AND Flagl2ore THEN ModTIME$=S • 
TR$(VAL(LEFT$(ModTIME$,2))-12)+RIGHTS(ModTIMES,6) 

LOCATE 2/18 : CALL TEXTFACE (Bold) 

PRINT ModTIMES 

LOCATE 5,18 ' Posizione dei tempi parziali in caso di con • 

flitto 

WINDOW OUTPUT FinestraAttuale 
RETURN 

MenuEvent: 

IF MENU(0) <> 6 THEN RETURN 
IF MENU(1)=1 THEN MENU RESET:END 
tina i menu 

IF MENU(1)=2 THEN Flagl2ore=vero 
IF MENU(1)=3 THEN Flagl2ore=falso 
mato 12 ore 
MENU 
RETURN 

TickCount: 'Calcola i secondi dal ciclo di clock del sistem • 

a operativo 

ticks=MultMed2*PEEK(TickMed2)+MultMedl*PEEK(TickMedl)+ PEEK(T • 
ickLow) 

RETURN « 

SUB TogliDialoghi STATIC 'Attende che non ci siano eventi in 
corso 

WHILE DIALOG(0)<>0 
WEND 


'Scelta dal menù 
'Ritorna al basic e ripris • 

'Flag del formato 12 ore 
'Cancella il flag del for • 


gramma le variabili è una saggia pra¬ 
tica. Le variabili esadecimali nelle ri¬ 
ghe successive sono gli indirizzi di 
memoria delle locazioni dei contato¬ 
ri al sessantesimo di secondo.Thick 
High è il byte alto, incrementato u- 
na volta ogni tre giorni, ThickLow 
è l'indirizzo del byte basso, che vie¬ 
ne aggiornato sessanta volte al se¬ 
condo. I tre moltiplicatori che seguo¬ 
no sono usati per trasformare il nu¬ 
mero di sessantesimi di secondo in 
un valore digeribile dall’MS Basic. 

I successivi tre comandi (ON TI¬ 
MER GOSUB, ON MENU GOSUB 
e ON DIALOG GOSUB) dicono al 
Basic dove andare nel caso si verifi¬ 
chi un evento esterno al programma. 
Questi comandi, in pratica, non ese¬ 
guono immediatamente le subrouti¬ 
ne. Finché tutte le finestre e i con¬ 
trolli non sono disegnati, il timer e 
i dialoghi-eventi sono disattivati. I 
comandi TIMER ON, DIALOG 
ON e MENU ON metteranno effetti¬ 
vamente in azione i controlli. 

Sono usate due finestre. L'ordine è 
importante poiché è l'ultima finestra 
usata a rimanere attiva, nel nostro ca¬ 
so la finestra dei tempi. Le definizio¬ 
ni dei bottoni si applicano alla fine¬ 
stra attiva, quella dei tempi, e pro¬ 
prio in essa appaiono durante l'esecu¬ 
zione del programma. Le dimensioni 
di ciascun bottone sono state deter¬ 
minate per tentativi; il Basic si 
preoccupa di centrare il nome del bot¬ 
tone all'interno del rispettivo rettan¬ 
golo. 

L'ultimo controllo di Cronometro, 
l'edit field, serve a dare nomi ai tem¬ 
pi parziali. Tutte le funzioni di edit, 
basckspace, taglia e incolla sono 
controllate dall'MS Basic. Se scrive¬ 
te programmi destinati ad altri uten¬ 
ti, ricordate che l’edit field è la mi¬ 
gliore funzione per dialoghi tramite 
tastiera. 

Come uscire 
senza sbagliare 

Un menu è stato creato apposita¬ 
mente per dimostrare come uscire 
correttamente dal programma, e per 
consentire di determinare il formato 
di lavoro dell'orologio (12 o 24 ore). 

I cicli concatenati WHILE-WEND 
sono il corpo principale del program¬ 
ma. Notate che quello più esterno è 
infinito. Il programma può abbando¬ 
narlo solo se interviene qualche even¬ 
to esterno che forza l’esecuzione di 
un altro blocco del programma. Gli 


53 





NEW FOR APPLE - IBM 


PRODOTTI PER ACQUISIZIONE DATI E MISURE 
PER UTILIZZO SCIENTIFICO-INDUSTRIALE 


SCHEDE PLUG-IN PER APPLE- IBM PC/XT E COMPATIBILI 

Schede di I/O parallele fino a 24 porte programmabili, 
Schede AD/DA converters 8 e 12 bits, da 2 a 16 canali con 
possibilità di avere ingressi differenziali, a guadagno pro¬ 
grammabile. Tempi di conversione fino a 25 microsecon¬ 
di, uscite a reed relais, versioni con reai time clock e 
batteria tampone. Disponiamo inoltre di prodotti uso la¬ 
boratorio quali: 

Sistemi di sviluppo per 6502, prova integrati. Serie TTL- 
MOS, programmatori di eproms, schede per encoder ot¬ 
tici, schede custom, ecc. 



PRODOTTI MODULARI A RACK PER APPLE • IBM ■ HP • DEC 
- COMMODORE ECC. 

Versioni dedicate o universali in RS232 - IEEE 488. 

40 Moduli tipo Eurocard disponibili a seconda delle ap¬ 
plicazioni; ogni rack può ospitare 9 moduli differenti ed 
essere utilizzato su elaboratori diversi sostituendo sem¬ 
plicemente il controller. 

APPLICAZIONI: Stepper motor controllers - Shaft eneo- 
ders - Trasduttori di pressione - Strain gauges - Celle di 
carico - Amplificatori di termocoppie - Profilometri - Stru¬ 
mentazione medica - Trasduttori di posizione ecc. 


PRODOTTI PER ACQUISIZIONE IMMAGINI 
DA TELECAMERA E/0 FONTI VIDEO 


VERSIONI PER APPLE E COMPATIBILI 

TELERASTER 256x192 Pixel con 64 toni di grigio o 
4 in pseudo colore 
IMAGE III 512x512 Pixel con 64 toni di grigio o 
colore reale 

VERSIONI PER PC/XT IBM E COMPATIBILI 

DIGICON 256x256 Pixel 256 toni di grigio o 
16 in pseudo colore 
SERIE OCULUS 512x512 Pixel da 1 a 128 toni di grigio o 
colore reale 


VERSIONI VME BUS E A RACK 
ADATTABILI A QUALUNQUE 
ELABORATORE 



APPLICAZIONI: Robotica - Riconoscimento immagini - 
Termografia - Ecografia - Misure - Archivio Immagini • Ri¬ 
conoscimento caratteri - Teleconferenze - Grafica pitto¬ 
rica - Schede tecniche con immagini miscelate a testi, 
calcolo aree, analisi da microscopio ecc. 

ACCESSORI: Telecamere, supporti verticali, stampanti al¬ 
ta risoluzione, stampanti colore, stampanti laser, Polaroid 
palette, plotters ecc. 

LA PERTEL PUÒ FORNIRE HARDWARE E PACKAGES APPLI¬ 
CATIVI SU RICHIESTA SPECIFICA, PER INFORMAZIONI: 


VIA ORMEA, 99 - CAP. 10126 TORINO 
TEL. Oli - 655.865 - 651.574 (service) 
TELEX 224243 PERTEL I 


APPLE - IBM SONO MARCHI REGISTRATI 


a 


t file Edit Se<»(h Run UJindoms Tempi 



Il display del programma. Sulla destra i nomi dei parziali stampati 
dall'edit field. 


eventi esterni possono essere i dialo¬ 
ghi, il timer, la selezione di un me¬ 
nu o lo STOP dato dall’utente (con 
<Command> . ). Finché non accade 
qualcosa il programma prosegue il 
suo loop e aggiorna il cronometro 
o, se non è attivato, attende. 

Notate che questi eventi esterni 
possono accadere in qualsiasi mo¬ 
mento e possono creare problemi di 
programmazione non indifferenti e 
difficili da individuare. Per esempio, 
se un evento accade tra il comando 
LOCATE e il successivo PRINT si 
potrebbe ottenere una stampa del cro¬ 
nometro in posizione errata, perché 
la routine TimerEvent modifica la 
posizione di stampa. Questo è stato 
corretto facendo in modo che Timer 
Event ricrei la posizione di stampa 
della routine principale. 

Come lavora 
routine per routine 

DialogEvent è eseguita quando 
è premuto un bottone, o il tasto re¬ 
turn, in un edit field. Queste due pos¬ 
sibilità trasferiscono il controllo a 
ButtonEvent o a EditEvent. 

La subroutine ButtonEvent de¬ 
termina quale bottone è stato premu¬ 
to e salta alla subroutine appropria¬ 
ta. StopButton ferma il cronome¬ 
tro dando a InFunzione il valore fal¬ 
so. GoButton inizializza il crono¬ 
metro, cancella i tempi parziali e fa 
partire il cronometro stesso (InFun- 
zione=vero), così si inizia la visua¬ 
lizzazione dei tempi, quindi ritorna 


il controllo al loop principale. 

LapButton controlla che il cro¬ 
nometro stia effettivamente funzio¬ 
nando, e nel caso legge l’etichetta 
dei tempi parziali e la stampa nella 
finestra corrispondente, accanto al 
tempo trascorso dall’ultima volta 
che si è premuto il bottone LAP. La 
subroutine EditEvent viene chia¬ 
mata quando si preme il tasto Nome 
OK o si preme return; immagazzina 
il nome e posiziona un flag per in¬ 
formare LapButton che un nuovo no¬ 
me è stato battuto. 

La subroutine TimerEvent è ese¬ 
guita una volta per secondo. Stam¬ 
pa il tempo attuale nel formato pre¬ 
scelto, 12 o 24 ore. La subroutine 
MenuEvent controlla la selezione 
del formato orario e il termine del 
programma, poi passa all’MS Basic 
le altre chiamate ai menu. La routi¬ 
ne TickCount assembla i byte del 
contatore del sistema operativo in 
un numero Basic ogni volta che il 
programma (in pratica ogni secondo) 
richiede il tempo esatto. La subrouti¬ 
ne TogliDialoghi elimina ogni e- 
vento generato mentre si attende l'i¬ 
nizio del programma (un click acci¬ 
dentale sul mouse all'interno di un 
bottone). 


Questo programma è disponibile 
su dischetto. L’elenco, i prezzi 
e le modalità d’ordine di questo 
e degli altri dischetti disponibili 
sono riportati nella rubrica 
Disk Service. 

^_ __ J 


© By Nibble e Applicando 


54 








































Sei proprio sicuro 
che il tuo computer 
sia sempre al sicuro? 


Incidenti di trasporto, furti anche dall'auto o dalla camera 
d'albergo, cortocircuiti, bevande rovesciate sulla tastiera, 
bambini o inesperti che ci mettono le mani... Ecco i pericoli 
che correva il tuo computer prima della polizza Applicando. 


Condizioni generali di assicura¬ 
zione: 

1) Premessa : a) l'adesione alla 
presente polizza è riservata ai pro¬ 
prietari di un Personal Computer il 
cui valore stabilito come alla Condi¬ 
zione 6) sia superiore a L. 
2.500.000 Iva compresa; b) l'adesio¬ 
ne alla presente polizza da parte dei 
proprietari di personal computer av¬ 
verrà a mezzo invio di apposita car¬ 
tolina con il relativo importo di pre¬ 
mio; c) l'intestatario della cartolina 
sarà considerato a tutti gli effetti co¬ 
me l’Assicurato; d) la garanzia sarà 
operante dalle ore 24 del giorno di 
spedizione della cartolina, risultante 
dal timbro postale. La copertura a- 
vrà durata un anno, sempre che la 
data di inizio della garanzia sia com¬ 
presa nel periodo di validità della 
convenzione. 

Garanzie e condizioni 

2) Sez. I - Danni materiali. Deri¬ 
vanti da: a) incendio, opera di spe¬ 
gnimento e salvataggio, fulmine, e- 
splosione, scoppio, implosione; b) a- 
cqua e liquidi in genere, inondazio¬ 
ne, alluvione, trombe, uragani, ge¬ 
lo, ghiaccio, neve, grandine, valan¬ 
ga, caduta massi e altri simili even¬ 
ti; c) superamento del muro del suo¬ 
no, caduta di aeromobili o cose da 
essi trasportate; d) corto circuito, 
variazione di corrente, sovratensio¬ 
ne arco voltaico, deficienze di isola¬ 
mento, effetti di elettricità statica, 
induzione; e) imperizia, negligen¬ 
za, errata manovra, nonché azioni 
dolose e colpose in genere; f) tra¬ 


sporti e smontaggi connessi con la¬ 
vori di pulizia o di manuten¬ 
zione; g) furto e rapina; h) terremo¬ 
to, maremoto o eruzioni vulcani¬ 
che; i) persone che prendono parte 
a tumulti popolari, scioperi, som¬ 
mosse e che perpetrino individual¬ 
mente o in associazione atti di terro¬ 
rismo o sabotaggio verificatisi in 
occasioni di serrate. 

3) Sez. II - Responsabilità Civile 
Terzi: L’assicurazione si intende i- 
noltre prestata per la Responsabili¬ 
tà Civile derivante all'Assicurato 
dalla proprietà e dall’uso personale 
del computer assicurato, identifica¬ 
to nel certificato di assicurazione. I 
massimali di garanzia si intendono 
fissati in: L. 100.000.000 per sini¬ 
stro con il limite di L. 100.000.000 
per ciascuna persona deceduta o 
che abbia subito lesioni personali 
L. 100.000.000 per danni a cose e/o 
animali. 

4) Esclusioni: La Società non è 
obbligata per i danni dovuti a: - do¬ 
lo dell’Assicurato; - corrosione, de¬ 
perimento, logoramento che siano 
conseguenza del normale uso o fun¬ 
zionamento o causati dagli effetti 
graduali degli agenti atmosferici; - 
per i quali deve rispondere il forni¬ 
tore, venditore o locatore degli enti 
assicurati per legge o per contratto 
o per inadeguata manutenzione; - 
causati da difetti di materiale o di 
costruzione che esistevano già all'at¬ 
to della stipulazione della polizza e 
erano a conoscenza dell'Assicurato;- 
causati direttamente o indirettamen¬ 


te da avvenimenti bellici, sommos¬ 
se militari, invasioni, adozione di 
misure da parte di potenze straniere, 
rivoluzione, ribellione, insurrezio¬ 
ne, assunzione ousurpazione di pote¬ 
re di carattere militare, sequestri; - 
verificatisi in occasione di esplosio¬ 
ne, radiazione nuclerare o di conta¬ 
minazione radioattiva; - uso impro¬ 
prio del bene (mancato rispetto del¬ 
le norme di impiego dettate dal co¬ 
struttore); - danni estetici (quelli in¬ 
teressanti l’involucro esterno che 
non sia conseguenza di un danno ri¬ 
sarcibile a termine della presente po¬ 
lizza); - guasti casualmente ricondu¬ 
cibili a interventi, a riparazioni e/o 
modifiche effettuate da un centro 
non autorizzato dalla casa costruttri¬ 
ce della macchina; - danni indiretti 
in genere. 

5) Operatività della garanzia: a) 
la garanzia è operante solamente se 
gli enti assicurati sono ubicati pres¬ 
so il domicilio dell’Assicurato o in 
luoghi diversi da questi se in posses¬ 
so dell’Assicurato; b) la garanzia è 
pure efficace se i beni si trovano sul¬ 
l'autovettura in uso all'Assicurato, 
salvo i seguenti casi: - qualora l'au- 


Sl! Desidero assicurare i miei/il mio computer, in¬ 
viatemi a stretto giro di posta il certificato emesso dal¬ 
la Ras. L'assicurazione avrà valore a decorrere dalle 
ore 24 del giorno di spedizione della mia adesione. 
Per la data fa fede il timbro postale. 

COGNOME_:_ 



NOME. 


INDIRIZZO. 


CAP- 


Città 


-PROV. 


Assicuro i/il seguente personal: 
Marca e Modello 


N. di matricola 


Valore (Iva compresa) 


Con le seguenti periferiche (stampanti, video, drive, hard-disk, ecc.): 

Marca e Modello N. di matricola Valore (Iva compresa) 


In caso di spazio insufficiente ricopiate su un foglio il tagliando indicando i prodotti che intendete assicurare. 

Per un totale complessivo di Lire . su cui pa¬ 

go il premio calcolato in base alla tabella riportata qui sopra. Allego assegno non trasferibile di 
Lire.intestato a Editronica srl, Corso Monforte 39, 20122 Milano. 


tovettura venga lasciata incustodita 
dalle ore 22 alle ore 6; - qualora 
l'autovettura regolarmente chiusa a 
chiave venga lasciata incustodita 
dalle ore 6 alle ore 22 e gli enti assi¬ 
curati non opportunamente occulta¬ 
ti nel bagagliaio; c) limitatamente 
ai danni di rottura la garanzia è effi¬ 
cace solamente nel caso questi sia¬ 
no dovuti a un incidente in cui ri¬ 
manga coinvolto anche il veicolo 
in uso dell'Assicurato che trasporta¬ 
va i beni assicurati; d) per gli enti 
per i quali non è stato stipulato il 
contratto di manutenzione e/o assi¬ 
stenza con la casa costruttrice e/o 
ditte di essa mandatarie qualora l'en¬ 
te richieda per norma del fornitore 
detto contratto, la società non ri¬ 
sponde dei danni verificatisi in con¬ 
seguenza di guasto meccanico e/oe- 
lettrico salvo che l'Assicurato pro¬ 
vi che tale guasto sia causato da e- 
vento esterno agli enti assicurati o 
da incendio originato da uno di que¬ 
sti enti. 

6) Somma Assicurata: La somma 
assicurata per ciascun ente deve cor¬ 
rispondere al costo di rimpiazzo, os¬ 
sia al prezzo di listino della casa co¬ 
struttrice ed escluso ogni sconto o 
prezzo di favore di un ente nuovo, 
eguale o equivalente per caratteristi¬ 
che, prestazioni e rendimento eco¬ 
nomico. 

7) Premio: Per ogni singola appli¬ 
cazione è stabilito un premio forfet¬ 
tario omnicomprensivo così calco¬ 
lato: 


Somma assicurata 

Premio 

da 

2.500.000 


a 

3.000.000 

50.000 

da 

3.000.000 


a 

5.000.000 

65.000 

da 

5.000.000 


a 

7.000.000 

80.000 

da 

7.000.000 


a 

10.000.000 

100.000 

da 

10.000.000 


a 

15.000.000 

120.000 

da 

15.000.000 


a 

20.000.000 

150.000 


8) Franchigia. Per ogni e qualsia¬ 
si danno che colpisca gli enti assicu¬ 
rati è stabilita una franchigia di: L. 
50.000 per somma assicurata fino a 
L. 5.000.000; L. 100.000 per som¬ 
ma assicurata superiore a L. 
5.000.000. Per sinistri causati da e- 
venti come ai punti g) ed h) delle ga¬ 
ranzie prestate, la Società liquiderà 
i danni sotto deduzione di uno sco¬ 
perto pari al 20% della somma assi¬ 
curata, col minimo delle franchigie 
sopra stabilite. 

9) Rinvio alle norme di legge. 
Per tutto quanto non è qui diversa- 
mente regolato, valgono le norme 
di legge. 


e applicando vi mettono al sicuro 

































GESTIONE DOMESTICA 


Come stanno la dispensa e il congelatore? Sempre ben forniti, 
ma non troppo, senza vuoti e senza sprechi? Oppure qualche vizietto 
di gestione si fa sentire? Per ottimizzare i vostri acquisti e scorte, 
l'ideale è un database intelligente e molto, molto massaio. 



Un genio al 
supermark 


Non c’è quartiere senza il suo bra¬ 
vo supermercato, sempre che non ce 
ne siano due o più. E, in obbedienza 
allo stesso processo, non c'è casa, o 
quasi, senza congelatore. Cocicché 
fare la spesa non significa più andare 
tutte le sere dal droghiere e dal frutti¬ 
vendolo, ma, ogni due settimane, re¬ 
carsi con un bel bagagliaio da riem¬ 
pire al più vicino supermercato. 

Gli acquisti dovrebbero essere così 
ottimizzati. Dovrebbero. In realtà 
succede anche più spesso di prima di 
scoprire che in casa manca il burro, 
o di trovare nel terzo scomparto un 
surgelato ormai fuori scadenza. 

Colpa di una gestione approssima¬ 
tiva, che le grandi quantità di viveri 
non fanno che enfatizzare nelle sue 
conseguenze negative.’ Con l'estate, 
poi, i problemi si accentuano più 
che mai: molti negozi chiudono e la 
grande spesa al supermercato diviene 
proprio indispensabile. E orribile sa¬ 
rebbe, in piena canicola, scoprirsi 
senza più bibite in frigo... 

Con questo comodo programma 
potete tener nota di tutto quello che 
dovete acquistare. Quando siete pron¬ 
ti per andare al negozio dovrete solo 
stampare la lista della spesa: Super 
Shopper, programma di utilità e 
database per la gestione della 
casa, memorizza, aggiorna, 
ordina e stampa in modo 
facile e rapido le liste 
della spesa. Oltre 
a trovare le spiega¬ 
zioni sull'uso di Super 
Shopper scoprirete in 


56 


Vv.r 


questo articolo l'evoluzione del pro¬ 
gramma dalla versione tartaruga del 
DOS a quella lepre del ProDOS e al¬ 
cune preziose indicazioni per la con¬ 
versione dei vostri programmi DOS 
3.3 in ProDOS. 

In barba, naturalmente, ai potenzia¬ 
li trabocchetti. 

Vedrete così qual è l'uso più accor¬ 
to della memoria del ProDOS, quali 
variazioni vengono apportate ai prin¬ 
cipali comandi del Dos, quali norme 
sono imposte nella nominazione dei 
file; e poi i codici di errore, le riper¬ 
cussioni sull’Applesoft e, per conclu¬ 
dere con saggezza, i pericoli nei qua¬ 
li è meglio non incappare quando si 
usa il ProDOS. 

Come introdurre 
categorie e prodotti 

Quando eseguite per la prima vol¬ 
ta Super Shopper non ci sono sul di¬ 
schetto informazioni sulla lista della 
spesa: Super Shopper vi offre l'op¬ 
zione di creare la vostra. Potete ave¬ 
re in lista fino a 40 categorie, e ogni 
categoria può comprendere fino a 40 
prodotti. In totale il programma può 
dunque tener nota di 1.600 articoli di¬ 
versi: vettovaglie sufficienti per la 
popolazione di una cittadina! 

Quando create la vostra lista riflet¬ 
tete anzitutto sul modo in cui fate la 
spesa, e organizzate in conformità le 
vostre categorie. 

Per esempio un criterio è quello 
dei tipi di prodotto che vi occorrono: 
potreste avere allora nomi di catego¬ 
ria come Verdura, Frutta, Pollame e 
pesce, Cibi in scatola, Erbe e spe¬ 
zie, Pane, Latticini, Surgelati, Deter¬ 
sivi e così via. 

Oppure potreste organizzare la li¬ 
sta in conformità con la disposizio¬ 
ne degli scaffali nel supermercato in 
cui vi servite. Ogni categoria potreb¬ 
be rappresentare una corsia di scaffa¬ 
li, e gli articoli di quella categoria sa¬ 
rebbero i prodotti che si trovano in 
quella corsia. 

Introducete le categorie quando Su¬ 
per Shopper ve le chiede. Se cambia¬ 
te idea sulle categorie potrete aggiun¬ 
gerne in seguito altre, cambiare i 
nomi o anche eliminare le categorie 
che non vi vanno a genio. 

Una volta introdotte le categorie 
viene visualizzato il menù principa¬ 
le. Per mettere nelle categorie gli ar¬ 
ticoli selezionate l'opzione (W) (Scri¬ 
vi le liste); Super Shopper vi chiede¬ 
rà a quale categoria volete lavorare. 


Tavola 1. Le funzioni del programma 


Linee Funzione 


70-310 

320-450 

460-620 

630-760 

770-860 

870-980 

990-1000 

1050-1080 

1090-1190 

1200-1240 

1250-1550 

1560-1730 

1740-1840 

1850-2090 

2100-2390 

2400-2500 

2510-2650 

2660-2820 

2830-2910 

2920-3010 

3020-3140 

3150-3230 


Allestimento e inzializzazione del programma 

Menù principale 

Menù di editing dei prodotti 

Funzione di aggiornamento delle liste dopo le spese 

Funzione di aggiunta di un prodotto 

Funzione di eliminazione di un prodotto 

Funzione di cambiamento del nome di un prodotto 

Funzione di cambiamento dello stato di lista di un articolo 

Ordinatore della lista dei prodotti 

Funzione di ricerca della categoria seguente 

Routine di stampa della lista 

Varie subroutine brevi 

Visualizzazione della lista dei prodotti 

Routine scelta prodotto/freccia 

Routine scelta categoria/freccia 

Menù di editing delle categorie 

Funzione di eliminazione delle categorie 

Funzione di cambiamento del nome delle categorie 

Funzione di aggiunta di categorie 

Routine di allestimento iniziale utente 

Uscita dal programma 

Subroutine di I/O dischetto (solo versione DOS 3.3) 


Viene visualizzata una lista dei no¬ 
mi di categoria che avete nel file, 
con un indicatore accanto a uno dei 
nomi. Per scegliere una categoria u- 
sate le frecce destra e sinistra (oppu¬ 
re freccia giù e freccia su), per spo¬ 
stare l'indicatore rispettivamente in 
giù e in su lungo la lista. Quanto 
l'indicatore è accanto alla categoria 
desiderata premete <RETURN>. Pre¬ 
mendo <ESC> si torna invece alla 
videata precedente. Quando avete in¬ 
trodotto la vostra lista potrete con 
poche battute modificare, mettere in 
ordine alfabetico o stampare la lista 
della spesa. 

Scegliete la categoria che desidera¬ 
te, usando le frecce e il tasto <RE- 
TURN>. Adesso usate l'opzione (A) 
(Aggiungi un prodotto) per introdur¬ 
re gli articoli nella vostra lista della 
spesa. Se avete bisogno di acquistare 
adesso l'articolo che state digitando 
battete S quando Super Shopper vi 
chiede se l'articolo è da acquistare su¬ 
bito. 

Presso l’articolo compare un con¬ 
trassegno di spunta. Gli articoli così 
spuntati saranno stampati nella lista 
della spesa; quelli non spuntati, 
viceversa, non compariranno nella li¬ 
sta stampata fino a quando non ne a¬ 


vrete bisogno, ma di questo parlere¬ 
mo più avanti. 

Finita questa categoria scegliete 
l’opzione (P) (Prossima categoria). 
Capita facilmente di cambiare idea 
dopo aver battuto gli articoli, e quin¬ 
di non preoccupatevi se la lista non 
vi riesce giusta la prima volta. Quan¬ 
do avete finito dovreste avere una li¬ 
sta di tutti i cibi che rientrano nei 
vostri acquisti abituali, disposti per 
categoria. 

Potrebbe essere questo il momen¬ 
to adatto per premere <ESC> e tor¬ 
nare al menù principale, facendo at¬ 
tenzione a usare l'opzione (Q) (Fini¬ 
re) di modo che la vostra lista sia im¬ 
magazzinata sul dischetto. Super 
Shopper dispone di protezioni per ga¬ 
rantire che salviate con successo la 
vostra lista prima di uscire dal pro¬ 
gramma, ma non può impedirvi di 
spegnere il computer o di premere 
<CTRL> <RESET>. 

Due parole sull'introduzione delle 
liste: Super Shopper è efficiente, ma 
sarebbe una perdita di tempo installa¬ 
re il programma ogni volta che vi 
viene in mente un solo articolo che 
dovete comprare. 

Potrebbe essere invece il caso di te¬ 
nere brevi liste scritte a mano, e in- 


57 





trodurre tutti gli articoli in una sola 
volta prima di uscire per andare al ne¬ 
gozio. 

Un’altra cosa: se vi piace studiare 
le ricette con la lista degli ingredien¬ 
ti alla mano, per vedere se vi manca 
qualcosa, Super Shopper vi farà ri¬ 
sparmiare molti viaggi supplementa¬ 
ri al negozio, alla ricerca di un paio 
di uova per la torta. Anche perché 
potrebbe essere già chiuso... 

Come stampare 
la lista della spesa 

Per stampare la lista della spesa se¬ 
lezionate S (Stampare una lista della 
spesa) sul menù principale e introdu¬ 
cete la vostra scelta del formato di 
80 o di 132 colonne. Super Shopper 
stamperà una lista comprendente tut¬ 
ti i nomi di categoria, e sotto ogni 
nome di categoria ci saranno gli arti¬ 
coli che avete spuntato per questo gi¬ 
ro di compere. 

Fatta la spesa avete due modi a di¬ 
sposizione per eliminare gli indicato¬ 
ri dai file di Super Shopper. Potete e- 
liminare tutti gli indicatori dalle li¬ 
ste premendo U (Aggiornare le liste 
dopo la spesa) e poi R (Rimuovere 
tutti i marcatori) nel menù principa¬ 
le. Altrimenti potete passare a uno a 
uno tutti gli articoli spuntati selezio¬ 
nando sul menù principale U segui¬ 
to da S (Selezionare i marcatori da 
togliere). 

Se optate per questo secondo meto¬ 
do premete S (sì) o N (no) ogni vol¬ 
ta che Super Shopper vi chiede "Hai 
comprato <questo articolo>?". 

Come sempre, una volta aggiorna¬ 
te le vostre liste usate l’opzione (Q) 
per mettere fine alla seduta. Questo 
assicura che le vostre liste siano im¬ 
magazzinate sul dischetto come le a- 
vete lasciate. 

Come si inserisce 
e come funziona 

Come si vede dal listato 1 Super 
Shopper funziona solamente in Pro- 
DOS. 

Se ne può però creare una versione 
che funziona in DOS 3.3 eliminan¬ 
do qualche linea dal listato 1 e ag¬ 
giungendo, o sostituendo alle linee 
tolte, le linee visibili nel listato 2. 
Questa seconda versione funziona an¬ 
che in ProDOS, ma il listato 1 è 
più breve e molto più veloce, in par¬ 
ticolare nel caso di liste lunghe. 

Per digitare Super Shopper battete 


Listato 1. Super Shopper 

Versione ProDOS. Per il DOS 3.3 introdurre questo listato 
e apportarvi le modifiche indicate nel listato 2. 

1 REM - 

2 REM SUPER.SHOPPER 

3 REM DI STEVEN E 

4 REM MARSHA MEUSE 

5 REM COPYRIGHT (C) 1986 

6 REM BY APPLICANDO 4 

7 REM MICROSPARC, INC 

8 REM - 

9 REM Questa versione funziona solo in ProDOS 
60 GOTO 100 

70 BBS = FOR I = 1 TO LEN (B$):B = ASC ( MIDS (B$,I,1)):BB$ 

= BBS + CHRS (B - (B > 96 AND B < 123) * 32): NEXT I :B$ = BB 

$ : RETURN 

80 WAIT - 16384/128: GET A$: IF ASC (A$) > 95 THEN A$ = CHRS ( 
ASC (A$) - 32) 

90 RETURN : REM "converte in maiuscolo/ i caratteri minuscoli 
100 TEXT : HOME 

110 REM * 

120 REM " Se il computer non è un //e o //c convertire il 
130 REM " testo minuscolo del programma in maiuscolo 
140 REM 

150 IF PEEK ( - 1101) < > 6 THEN A = 768: FOR B = A TO A + 47: 

READ C: POKE B,C: NEXT : CALL A 

160 DATA 165/103/133/0/165/104/133/1/160/1/177/0,240/33/160/4 
170 DATA 177/0/240/13/48/8/201/96,144/4/41/95/145/0/200/208 
180 DATA 239/160,0/177/0/170/200/177/0/133,1,134/0/208/223,96 
200 ONERR GOTO 2950 

210 PRINT CHRS (4)"RESTORE SHOPPER.VARS": POKE 216,0 
220 REM 

230 REM " Codici controllo stampante (attualmente per Imagewrite 
r) 

240 REM 

250 PSLOT = 1: REM "numero slot stampante 

260 PINITS = CHRS (9) + "80N": REM "Stringa inizializzazione st 
ampante 

270 PFFS = CHRS (12) : REM "Codice controllo stampa di un avanza 
mento modulo 

280 P80S = CHRS (27) + "N": REM "Codice controllo stampa a 80 c 
donne 

290 P132S = CHRS (27) + "Q": REM "Stampa 17 cpi 

300 PCS = CHRS (27) + "X": REM "Codice controllo stampa nome ca 
tegoria (di solito sottolineatura) 

310 PNS = CHRS (27) + "Y": REM "Codice controllo stampa normale 
(nega PCS) 

320 REM 

330 REM " Menù principale 
340 REM 

350 HOME : GOSUB 1590: VTAB 8: PRINT "Puoi:": PRINT : PRINT TAB( 
4)" (W) Scrivere le liste": PRINT : PRINT TAB( 4)" (U) Aggior 
nare le liste dopo la spesa"; 

360 PRINT : PRINT TAB( 4)"(S) Stampare una lista della spesa": P 
RINT : PRINT TAB( 4)"(F) Stampare la lista completa": PRINT 
370 PRINT TAB( 4)"(A) Aggiungere, Cambiare o Eliminare le 

categorie": PRINT : PRINT TAB( 4)"(Q) Finire" 

380 HTAB 1: VTAB 22: GOSUB 80:AN$ = A$ 

390 IF A$ = "W" THEN 490 

400 IF A$ = "U" THEN 660 

410 IF A$ = "S" THEN 1280 

420 IF A$ = "F" THEN 1280 

430 IF A$ = "A" THEN 2430 

440 IF A$ = "Q" THEN 3100 

450 GOTO 350 
4 60 REM 

470 REM " Scrive le liste 
480 REM 

490 GOSUB 2130: HOME 
500 GOSUB 1770 

510 VTAB 23: PRINT "A)ggiungi,E)limina,C)ambia,M)etti/Togli,P)ros 
sima,S)eleziona,R)iordina, <ESC>"; 

520 HTAB 1: VTAB 1: GOSUB 80: GOSUB 1600 
530 IF A$ = "S" THEN 1230 

540 IF A$ = "A" THEN 800 

550 IF A$ = "E" AND LEN (P$(C,1)) THEN 900 

560 IF A$ = "C" AND LEN (P$(C,1)) THEN 1020 

570 IF A$ = "M" AND LEN (P$(C,1)) THEN 1080 

580 IF A$ = "R" AND LEN (P$(C,1)) THEN 1120 

590 IF ASC (A$) = 27 THEN 350 
600 IF A$ < > "P" THEN 510 

610 HP = 0:VP = 0:C = C + 1: IF C = CTG THEN C = 0 
620 GOTO 500 
630 REM 

640 REM " Aggiorna le liste dopo la spesa 
650 REM 

660 HOME : VTAB 5: PRINT TAB( 4)"==========================-==== 


DOS 3.3 
ProDOS 

Apple Ile 
Apple Ile 


58 











====": PRINT TAB( 4)"! Aggiorna le liste dopo la spesa !": P 

RINT TAB( 4)"===================================": PRINT : P 

RINT : REM "35/35 SEGNI = 

670 PRINT "Puoi:": PRINT : PRINT TAB( 2)"R)imuovere tutti i mare 
atori : PRINT : PRINT TAB( 2)"S)elezionare i marcatori d 

a rimuovere": PRINT : PRINT TAB( 2)"<ESC> per men'": PRINT : 
PRINT : GOSUB 80: IF ASC (A$) = 27 THEN 350 
680 IF A$ = "S" THEN 710 
690 IF A$ > < "R" THEN 660 

700 FOR C = 0 TO CTG - 1: FOR P = 1 TO 40:P%(C,P) - 0: NEXT : NEX 
T : GOTO 350 

710 FOR C = 0 TO CTG - 1: GOSUB 1770: FOR P = 1 TO 40: IF NOT P% 
(C,P) THEN NEXT : NEXT : GOTO 350 
720 VTAB 23: PRINT TAB ( 8)"Hai comprato "P$ (C,P)"?": VTAB 24: HT 
AB 9: PRINT "(S/N) o <ESC> menù";: GOSUB 80: GOSUB 1600: IF 
ASC (A$) = 27 THEN P = 40:C = CTG: GOTO 760 
730 IF A$ = "S" THEN P%(C,P) = 0: GOSUB 1620: GOTO 760 
740 IF A$ = "N" THEN 760 
750 GOTO 720 

760 NEXT : NEXT : GOTO 350 
770 REM 

780 REM " Aggiunge un prodotto 
790 REM 

800 IF LEN (P$ (C,40)) THEN PRINT CHR$ (7)"Questa lista è comp 
leta.": GOSUB 1610: GOSUB 1600: GOTO 510 
810 GOSUB 1650: IF NOT LEN (P3(C,1)) THEN P = 1: GOTO 850 
820 VTAB 23: PRINT TAB( 2)"Scegli un posto per il nuovo prodotto 
":NP = NP + 1:P3(C,NP) = CHR$ (27): IF NP = 21 THEN GOSUB 1 
770 

830 GOSUB 1890: GOSUB 1600: IF P = NP THEN 850 

840 A = P: FOR P = NP TO A + 1 STEP - 1:P3(C,P) = P$(C,P - 1):P% 
(C, P) = P% (C, P - 1) : NEXT 

850 P3(C,P) = B$: P% (C, P) = B: IF P = NP THEN GOSUB 1620: GOTO 51 

0 

860 GOTO 500 
870 REM 

880 REM " Elimina un prodotto 
890 REM 

900 VTAB 23: PRINT TAB( 5)"Quale prodotto vuoi eliminare?": GOSU 
B 1890: GOSUB 1600 

910 PRINT "Elimini "P$(C,P)"? (S/N) or <ESC>"; 

920 GOSUB 80: GOSUB 1600: IF ASC (A3) = 27 THEN 510 

930 IF A3 = "N" THEN 900 
940 IF A3 < > "S" THEN 920 

950 IF P = NP THEN VP = VP - 1 

960 IF P < 40 THEN P3(C,P) = P3(C,P + 1):P%(C,P) = P%(C,P + 1): I 

F NOT LEN (P3 (C,P)) THEN GOSUB 1600: GOTO 500 
970 IF P = 40 THEN P3(C,P) = "":P%(C,P) = 0: GOSUB 1600: GOTO 500 
980 P = P + 1: GOTO 960 
990 REM 

1000 REM " Cambia il nome di un prodotto 
1010 REM 

1020 VTAB 23: PRINT TAB( l)"Quale nome vuoi cambiare?": GOSUB 18 
90: GOSUB 1600 
1030 GOSUB 1650 

1040 P3 (C,P) = B3:P%(C,P) = B: GOSUB 1620: GOTO 510 
1050 REM 

1060 REM " Cambia il marcatore dell’articolo sulla lista 
1070 REM 

1080 GOSUB 1600: PRINT TAB ( 2)"Scegli l'articolo da listare ": G 
OSUB 1890 :P% (C f P) = NOT P%(C,P): GOSUB 1600: GOSUB 1620: GO 
TO 510 
1090 REM 

1100 REM " Riordina una lista (ordinamento alfabetico) 

1110 REM 

1120 GOSUB 1600: PRINT "Lista alfabetica? (Conferma (S/N) ";: GOS 
UB 80: IF A3 = "N" THEN GOSUB 1600: GOTO 510 
1130 IF A3 < > "S" THEN 1120 

1140 GOSUB 1600: PRINT TAB( 14)" (sto lavorando...)" 

1150 FOR B = 2 TO 40:A3 = P3(C,B):A = P%(C,B): IF NOT LEN (A3) 

THEN B = 40: NEXT : GOTO 1190 

1160 FOR P = B - 1 TO 1 STEP - 1 : IF P3(C,P) < A3 THEN P3(C / P + 

1) = A3 : P%(C,P + 1) = A:P = 1: NEXT : NEXT : GOTO 1190 

1170 P3 (C, P + 1) = P3 (C,P):P% (C, P + 1) = P%(C,P) : NEXT 

1180 P3 (C,P + 1) = A3 :P%(C,P + 1) = A: NEXT 

1190 GOTO 500 
1200 REM 

1210 REM " Cerca categoria seguente (calcola posizione freccia) 
1220 REM 

1230 IF CTG < 21 THEN VC = C + 1 :HC = 0: GOTO 4 90 

1240 HC = 2 + ( (C > 19) * 20) :VC = 1 + C - ((C > 19) * 20): GOTO 

490 

1250 REM 

1260 REM " Stampa la lista della spesa 
1270 REM 

1280 HOME : VTAB 12: PRINT TAB( 7)"(A)80 o (B) 132 colonne? ";: G 
OSUB 80: IF A3 = "B" THEN CLM = 8: GOTO 1320 
1290 IF A3 = CHR3 (13) OR A3 = CHR3 (27) THEN 350 
1300 IF A3 < > "A" THEN 1280 

1310 clm = 5 (Continua) 


il programma in Applesoft visibile 
nel listato 1 e salvatelo sul di¬ 
schetto con il comando: 


SAVE SUPER.SHOPPER 


Il listato 2 è una lista delle mo¬ 
difiche che convertono Super Shop¬ 
per per il funzionamento in DOS 
3.3. Le modifiche sono in ordine nu¬ 
merico, in modo che possiate battere 
il listato 1 e spuntare ogni modifica 
quando la raggiungete. Fate attenzio¬ 
ne a eliminare le linee elencate nel 
paragrafo esplicativo. Salvate la ver¬ 
sione DOS 3.3 completata con il co¬ 
mando: 


SAVE SUPER.SHOPPER 


Super Shopper fa da intermediario 
fra voi e i dati sul vostro dischetto, 
permettendovi di editare e stampare 
le vostre liste della spesa. La diffe¬ 
renza principale fra le versioni Pro- 
DOS e DOS 3.3 è il modo in cui i 
dati sono immagazzinati sul dischet¬ 
to: la versione DOS 3.3 usa file di 
testo ad accesso casuale, e la versio¬ 
ne ProDOS usa il file VAR, un tipo 
di file non disponibile con il DOS 
3.3. Il file VAR è un parente del file 
binario, e contiene tutte le variabili 
del programma in Applesoft che lo 
ha creato. Questo permette a Super 
Shopper di caricare rapidamente i vo¬ 
stri dati della spesa, modificarli in 
memoria e scrivere il tutto quando u- 
scite dal programma. 

Invece quando fate girare la versio¬ 
ne in DOS 3.3, questa deve leggere 
ogni voce tramite l'istruzione IN¬ 
PUT dellApplesoft. E' vero che cer¬ 
ca di saltare i record vuoti, ma con 
tutto ciò il procedimento può essere 
lungo. Poi, per evitare un'ancor più 
lunga scrittura sul dischetto alla fine 
di una seduta, la versione DOS 3.3 
aggiorna le singole voci sul dischet¬ 
to ogni volta che ne viene cambiata 
una. Qui la maggior velocità della 
versione ProDOS è un indubbio van¬ 
taggio. 

La gestione del file VAR è molto 
facile, tramite i comandi del Pro¬ 
DOS STORE e RESTORE. Molti 
programmi in Applesoft che usano 
file di testo DOS 3.3 per immagazzi¬ 
nare i dati potrebbero essere notevol¬ 
mente accelerati usando file VAR in 
ProDOS. 

Per chi è interessato ad approfondi¬ 
re lo studio del meccanismo interno 
di Super Shopper la tavola 1 de- 


59 







■ 


■ 


scrive le funzioni delle varie subrou¬ 
tine, e la tavola 2 documenta le va¬ 
riabili. 

Modifiche e 
personalizzazioni 

Se volete potete personalizzare Su¬ 
per Shopper in conformità con le vo¬ 
stre esigenze. Per esempio se non a- 
vete nello slot 1 una stampante C. I- 
toh Prowriter o l’Apple Imagewriter, 
dovrete cambiare i codici di control¬ 
lo della stampante alle linee 250- 
310. PSLOT è lo slot nel quale si 
trova la vostra scheda stampante (1- 
7). PINIT$ è la stringa per l’inizializ- 
zazione della stampante. 

Notate che essa deve anche disatti¬ 
vare l'eco dei caratteri sullo schermo 
(solitamente <CTRL>L). P80$ e 
PI32$ sono le sequenze di codice di 
controllo che danno istruzione alla 
vostra stampante di stampare rispetti¬ 
vamente in formato 80 colonne o 
132 colonne. Infine PC$ contiene il 
codice per evidenziare i nomi delle 
categorie e PN$ contiene il codice 
per disattivare l'evidenziamento. Su¬ 
per Shopper è stato configurato in 
modo che sottolinei i nomi di cate¬ 
goria, ma può darsi che li vogliate 
invece stampare in neretto. Per esem¬ 
pio, per convertire il programma in 
modo che giri con la stampante E- 
pson sostituite le linee 280-310 con 
le seguenti: 


280 P80$ = CHR$(18) 

290 Pl$ = CHR$(27) + ”Q" 

300 PCS = CHR$(27) + + 

CHR$ (I) 

310 PN$ = CHR$(27> + + 

CHR$ (0) 


Per avere i codici appropriati con¬ 
sultate i manuali della vostra stam¬ 
pante e della vostra interfaccia. 

Potete anche cambiare ciò che av¬ 
viene quando uscite dal programma. 
Super Shopper, così come è scritto, 
si limita a pulire lo schermo e a fer¬ 
marsi. Per mettere il programma su 
un dischetto separato, pilotato da me¬ 
nù, e farlo tornare al vostro program¬ 
ma di menù quando avete finito, 
cambiate la linea 3140. Super Shop¬ 
per termina sempre a questa linea. 
Se il vostro programma di menù si 
chiama STARTUP dovreste cambia¬ 
re così la linea 3140: 


3140 POKE 216,0 : HOME : PRIN- 


1320 

1330 

1340 

1350 

1360 

1370 


1380 

1390 

1400 

1410 

1420 

1430 

1440 

1450 

1460 

1470 

1480 

1490 

1500 

1510 

1520 

1530 

1540 

1550 

1560 

1570 

1580 

1590 


1600 

1610 

1620 

1630 

1640 

1650 


1660 

1670 


1680 

1690 

1700 

1710 

1720 

1730 

1740 

1750 

1760 

1770 

1780 

1790 

1800 

1810 

1820 

1830 

1840 

1850 

1860 

1870 

1880 

1890 

1900 

1910 

1920 

1930 

1940 

1950 

1960 


HOME : VTAB 12: PRINT TAB ( 3) "Sto stampando la lista della 
spesa": PRINT : PRINT TAB ( 6)"Accendi la stampante, prego." 
ONERR GOTO 1360 

PRINT D$"PR#"PSLOT: PRINT : VTAB 14: CALL - 958: POKE 216,0 
: PRINT PINITS: IF A$ = "A" THEN PRINT P80$: GOTO 1380 
PRINT P132$: GOTO 1380 

POKE 216,0: IF PEEK (222) < > 3 THEN 2950 

PRINT D$"PR#0": PRINT : HOME : VTAB 10: PRINT CHR$ (7) "Non 
c'è scheda stampante nello slot "PSLOT".": VTAB 23: GOSUB 16 
10: GOTO 350 
IF AN$ = "F" THEN 1500 

POKE HT, CLM * 7: PRINT "Lista della spesa": PRINT : PRINT 
FOR C = 0 TO CTG - 1 STEP CLM: PRINT PCS 
A = C + CLM - 1: IF A = > CTG THEN A = CTG - 1 
NP = 0: FOR B = C TO A 

IF P%(B,PR%(B)) THEN POKE HT, (B - C) * 16: PRINT P$(B,PR%(B 

) ); :PR%(B) = PR%(B) + 1:NP = 1: NEXT : GOTO 1460 

PR%(B) = PR%(B) + 1: IF PR% (B) < 41 THEN IF LEN (P$(B,PR%( 

B))) THEN 1430 

PR%(B) = 40: NEXT 

IF NP THEN PRINT PNS 

NP = 0: FOR B = C TO A: IF PR% (B) < 40 THEN NP = 1 
NEXT : IF NP THEN 1410 

NEXT : PRINT PFFS: PRINT D$"PR#0": FOR B = 0 TO CTG - 1 : PR%( 
B) = 0: NEXT : GOTO 350 * 

PRINT "Ecco l'intera lista!": PRINT : PRINT 

FOR C = 0 TO CTG - 1 STEP CLM: PRINT PCS: A - C + CLM - 1 : IF 

A = > CTG THEN A = CTG - 1 

FOR P = 0 TO 40:NP = 0: FOR B = C TO A: IF NOT LEN (P$(B,P 

)) THEN NEXT : GOTO 1540 

POKE HT, (B - C) * 16: PRINT P$(B,P);:NP = 1: NEXT 
IF NP THEN PRINT PNS 

NEXT : NEXT : PRINT PFFS: PRINT D$"PR#0": GOTO 350 
REM 

REM " Subroutine varie 
REM 

VTAB 3: PRINT ”***************************************** 


1986 by Applicando 
**************«. RE 


HTAB B 
PRINT TAB( 17)". 


POKE 34, PEEK (37 
TEXT : GOSUB 1710: 
REM "15 PUNTI 


RETURN 

POP : GOTO 510 


Super Shopper di Steven Meuse ** (C) 

& MicroSPARC ************************** 

TURN : REM "41/2/41 ASTERISCHI 
VTAB 23: HTAB 1: CALL - 958: RETURN 

PRINT TAB ( 6)"premi <RETURN> per continuare...";: GET A$: R 
ETURN 

B = 3 + (NP < 21) * 7 + 20 * (P > 20): HTAB B: VTAB 1 + P - 
(P > 20) * 20: IF B = 3 THEN POKE 33,19 
CALL - 868: POKE 33,40: IF P%(C,P) THEN PRINT 
2: PRINT PS (C,P): RETURN 

."; : HTAB 1: 

): INPUT "Scrivi il nuovo articolo->";B$: 

GOSUB 1600: IF LEN (B$) > 15 THEN 1650: 

IF NOT LEN (B$) THEN POP : GOTO 510 

GOSUB 70: PRINT "C'} "B$" sulla tua attuale": PRINT "lista d 
ella spesa? (S/N/ESC) GOSUB 80: GOSUB 1600: IF A$ = "S" 

THEN B = 1: RETURN 
IF A$ = "N" THEN B = 0: 

IF ASC (A$) = 27 THEN 

GOTO 1670 

IF NOT LEN (B$) THEN RETURN 

A$ = FOR B = 1 TO LEN (B$) : IF 

31 THEN A$ = A$ + MIDS (B$,B,1) 

NEXT :B$ = A$: RETURN 
REM 

REM " Visualizza la lista dei prodotti 
REM 

D = 3 :NP = 40: IF NOT LEN (P$(C,21)) THEN 
VTAB 1: POKE 35,22: HOME : POKE 35,24: HTAB (39 - LEN (PS(C 
,0))) / 2: INVERSE : PRINT P$(C,0): NORMAL 
FOR A = 1 TO 20: HTAB D: IF P%(C,A) THEN PRINT 
HTAB D + 2: PRINT P$(C,A): IF NOT LEN (P$(C,A)) THEN NP = 

A - 1 : A = 20: NEXT : RETURN 
NEXT 

VTAB 2:D = 23: FOR A = 21 TO 40: HTAB D: IF P%(C,A) THEN PR 
INT "*"; 

HTAB D + 2: PRINT P$(C,A): IF NOT LEN (P$(C,A)) THEN NP = 

A - 1 : A = 40 
NEXT : RETURN 
REM 

REM " Sceglie un prodotto (con la freccia mobile) 

REM 

GOSUB 1770 

VTAB 24: PRINT "Frecce per scegliere-(RET) = conferma";: IF 
VP < 2 THEN VP = 2:HP = 0 
IF NP > 20 THEN 1980 
VTAB VP: HTAB 7: PRINT 

HTAB 1: VTAB 1: GOSUB 80: VTAB VP: HTAB 7: PRINT " 

IF ASC (A$) = 21 OR ASC (A$) = 10 THEN VP = VP + 1 : IF VP 

= NP + 2 THEN VP = 2 
IF ASC (A$) = 8 OR ASC (A$) 

1 THEN VP = NP + 1 

IF ASC (A$) =13 THEN P = VP - 1: 

IF ASC (A$) = 27 THEN P = VP 


ASC ( MIDS (B$,B,1)) 


10 


11 THEN VP = VP - 1: IF VP = 


RETURN 
1: GOTO 2080 


60 












1970 GOTO 1910 

1980 IF HP = 0 THEN HP = 1 

1990 VTAB VP: HTAB HP : PRINT 

2000 HTAB 1: VTAB 1: GOSUB 80: VTAB VP: HTAB HP : PRINT ** " ; 

2010 IF ASC (A$) = 13 THEN P = VP - 1 + ((HP > 1) *20): RETURN 

2020 IF ASC (A$) = 21 OR ASC (A$) = 10 THEN VP = VP + 1 : IF VP 

= 22 AND HP = 1 THEN VP = 2 : HP = 20 
2030 IF VP + 18 = NP AND HP = 20 THEN VP = 2:HP = 1 

2040 IF ASC (A$) = 8 OR ASC (A$) = 11 THEN VP = VP - 1 : IF VP = 

1 AND HP = 1 THEN HP = 20:VP = NP - 19 
2050 IF VP = 1 AND HP = 20 THEN VP = 21:HP - 1 
2060 IF ASC (AS) > < 27 THEN 1990 

2070 P = VP - 1 + ( (HP > 1) * 20) 

2080 GOSUB 1600: POP : IF P$(C,NP) = CHR$ (27) THEN P$(C,NP) = " 

" : VP = VP - (P = NP) :NP = NP - 1: IF NP = 20 THEN GOSUB 177 
0: REM "aggiusta NP e VP se (A)ggiungere l'ha cambiato 
2090 GOTO 510 
2100 REM 

2110 REM " Sceglie una categoria (con la freccia mobile) 

2120 REM 

2130 HOME : VTAB 22: PRINT TAB ( 12)"Quale categoria?" 

2140 PRINT TAB ( 6)"Usa le frecce per scegliere": PRINT TAB( 9)" 
(RETURN) per confermare";: VTAB 1 
2150 HP = 0:VP = 0: IF VC < 1 THEN VC = 1 
2160 B = 12: IF CTG > 20 THEN B = 5: GOTO 2280 

2170 HC = 2: FOR C = 0 TO CTG - 1: HTAB B: PRINT P$(C,0): NEXT 

2180 VTAB VC: HTAB 9: PRINT "==>"; 

2190 HTAB 35: VTAB 23: GOSUB 80: VTAB VC: HTAB 9: PRINT " 

2200 IF ASC (A3) - 21 OR ASC (A3) = 10 THEN VC = VC + 1 

2210 IF ASC (A3) = 8 OR ASC (A3) = 11 THEN VC = VC - 1 

2220 IF VC = 0 THEN VC = CTG 

2230 IF VC = CTG + 1 THEN VC = 1 

2240 IF ASC (A3) = 13 THEN C = VC - 1: RETURN 

2250 IF ASC (A3) = 27 AND ANS = "W" THEN POP : GOTO 350 

2260 IF ASC (A3) = 27 THEN POP : GOTO 2430 

2270 GOTO 2180 

2280 FOR C = 0 TO 19: HTAB B: PRINT P3(C,0): NEXT : VTAB 1:B = 25 

: FOR C = 20 TO CTG - 1: HTAB B: PRINT P$(C,0): NEXT : IF HC 

= 0 THEN HC = 2 

22 90 IF VC = 0 THEN VC = 1 : HC = 2 

2300 VTAB VC: HTAB HC: PRINT "==>"; 

2310 HTAB 35: VTAB 23: GOSUB 80: VTAB VC: HTAB HC : PRINT " 

2320 IF ASC (A3) = 13 THEN C = VC - 1 + ((HC > 2) *20): RETURN 

2330 IF ASC (A3) = 21 OR ASC (A3) = 10 THEN VC = VC + 1 : IF VC 

= 21 AND HC = 2 THEN VC = 1 :HC » 22 
2340 IF HC = 22 AND VC + 19 = CTG THEN VC = 1:HC = 2 

2350 IF ASC (A3) = 8 OR ASC (A3) = 11 THEN VC = VC - 1 : IF VC = 

0 AND HC = 2 THEN VC = CTG - 20:HC = 22 
2360 IF VC = 0 AND HC = 22 THEN VC = 20:HC = 2 
2370 IF ASC (A3) = 27 AND ANS = "W" THEN POP : GOTO 350 

2380 IF ASC (A3) - 27 THEN POP : GOTO 2430 

2390 GOTO 2300 
2400 REM 

2410 REM " Menù aggiunta, cambio ed eliminazione categoria 
2420 REM 

2430 HOME : GOSUB 1590 

2440 PRINT : PRINT TAB ( 9)"==========================": PRINT T 

AB( 9)"! Modifiche di categoria !": PRINT TAB( 9) "========= 

=================••: REM "26/26 SEGNI = 

2450 PRINT : PRINT "Puoi:": PRINT : PRINT : PRINT TAB( 9)"A)ggiu 
ngere una categoria": PRINT : PRINT TAB ( 9)"E)1iminare una 
categoria": PRINT : PRINT TAB( 9)"C)ambiare una categoria": 
PRINT : PRINT TAB ( 9)"<ESC> per il menù" 

2460 GOSUB 80: IF A3 = "E" THEN 2540 
2470 IF A3 = "C" THEN 2690 
2480 IF A3 = "A" THEN 2860 
2490 IF ASC (A3) = 27 THEN 350 
2500 GOTO 2460 
2510 REM 

2520 REM " Elimina una categoria 
2530 REM 

2540 HOME : VTAB 22: PRINT TAB( 3)"Quale categoria vuoi eliminar 
e?": GOSUB 2140: VTAB 22: HTAB 1: CALL - 958: PRINT : PRINT 
"Elimini "P3(C,0)"? (conferma S/N)" 

2550 GOSUB 80: IF A3 = "N" THEN 2430 
2560 IF ASC (A3) = 27 THEN 350 
2570 IF A3 > < "S" THEN 2550 

2580 HOME : VTAB 12: PRINT TAB ( 9)"Sto eliminando "P$(C,0) 

25 90 IF C = CTG - 1 THEN VC = VC - 1 : GOTO 2610 

2600 FOR C = C TO CTG - 2: FOR P = 0 TO 40:PS(C,P) = P$ (C + 1,P): 

P%(C,P) = P% (C + 1, P) : NEXT : NEXT 

2610 CTG = CTG - 1: FOR P = 0 TO 40:PS(CTG,P) = "":P%(CTG,P) = 0: 

NEXT : IF CTG THEN 2430 

2620 VTAB 1: PRINT : PRINT D$"UNLOCK"F3: PRINT D$"DELETE"FS 
2630 HOME : GOSUB 1590: PRINT : PRINT : PRINT "Non hai us^to alcu 
na categoria.": PRINT : PRINT "Puoi:": PRINT : PRINT TAB( 9 
) " (A) Aggiungere categorie": PRINT : PRINT TAB( 9)"(Q) Fine 
": GOSUB 80: IF A3 = "A" THEN 3000 
2640 IF A3 = "Q" THEN 3140 
2650 GOTO 2630 

2660 rem (Continua) 


Note sulla conversione 
dal DOS al ProDOS 

Eccoci a un argomento che mol¬ 
tissimi tra i lettori troveranno vera¬ 
mente prezioso. 

Questo paragrafo, e tutti quelli a 
seguire, infatti, è quasi un breviario 
per chi si trova a dover convertire un 
tipico programma in Applesoft dal 
DOS 3.3 S ProDOS: le indicazioni 
che contiene infatti vanno ben oltre 
le necessità di chi deve convertire Su¬ 
per Shopper. 

Il ProDOS Versione 1.1.1 com¬ 
prende il nocciolo del ProDOS, 
chiamato PRODOS, e l’interprete 
Basic del ProDOS, chiamato BA- 
SIC.SYSTEM. Questo interprete è 
il nesso fra i vostri programmi in 
Applesoft e le routine di livello infe¬ 
riore del nocciolo del ProDOS (chia¬ 
mato anche MLI, ossia machine lan- 
guage interface, interfaccia linguag¬ 
gio macchina). Quando in questa se¬ 
de si parla di ProDOS ci si riferisce 
sia al nocciolo sia all'interprete Ba¬ 
sic, in quanto sono entrambi necessa¬ 
ri per programmare in Applesoft con 
il ProDOS. 

L'utilizzo della 
memoria in ProDOS 

Ci sono alcune considerazioni ge¬ 
nerali da fare sulla conversione dei 
programmi Applesoft in ProDOS. 
Più importante di tutto è trovare nel¬ 
la memoria un posto sicuro per le 
subroutine in linguaggio macchina. 
In DOS c’è una gran quantità di buo¬ 
ni nascondigli: a pagina 3 ($300- 
$3CF), fra $800 e il vostro program¬ 
ma (se avete trasferito il vostro pro¬ 
gramma), fra il vostro programma e 
LOMEM, fra HIMEM e il DOS, fra 
il DOS e i suoi buffer di file, o nel¬ 
la language card. In ProDOS riman¬ 
gono sicuri soltanto tre di quei po¬ 
sti: a pagina 3, fra $800 e il vostro 
programma e fra il BASIC.SY¬ 
STEM e i suoi buffer dei file. 

E allora come e dove possiamo im¬ 
magazzinare in ProDOS le subrouti¬ 
ne in linguaggio macchina? Molti 
programmi usano la pagina 3 per le 
subroutine brevi. L’utilizzo dell'area 
che va da $300 a $3CF non causerà 
alcun problema con il ProDOS. Se 
vi occorre un maggiore spazio la so¬ 
luzione più sicura e più facile è quel¬ 
la di trasferire in su nella memoria il 
vostro programma in Applesoft, e 
mettere le routine nello spazio che a- 


■ 


61 












2670 

2680 

2690 

2700 


2710 

2720 

2730 

2740 

2750 

2760 

2770 

2780 

2790 

2800 

2810 

2820 

2830 

2840 

2850 

2860 

2870 


2880 

2890 


2900 

2910 

2920 

2930 

2940 

2950 


2960 

2970 


2980 

2990 

3000 


3010 


3020 

3030 

3040 

3050 


3060 

3070 

3080 

3090 

3100 

3110 

3120 

3130 


3140 


REM " Cambia il nome di una categoria 
REM 

HOME : VTAB 22: PRINT TAB ( 6)"Quale nome vuoi cambiare?": G 


OSUB 2140 

HTAB 1: VTAB 22: CALL - 958: PRINT : PRINT TAB( 25)". 

.HTAB 1: POKE 34,22: INPUT "Inserire una nuova c 

ategoria>";B$: TEXT : GOSUB 1710: GOSUB 1600: IF NOT LEN ( 
B$) THEN 2430: REM "15 PUNTI 
IF LEN (BS) > 15 THEN 2700 

GOSUB 70: PRINT "Cambi "P$(C,0) M in "B$"?";: VTAB 24: HTAB 1 
3: PRINT "(conferma S/N)"; 

GOSUB 80: IF A$ = "N" THEN 2430 
IF ASC {A$) = 27 THEN 350 
IF A3 > < "S" THEN 2730 

GOSUB 1600: PRINT TAB ( 12)" (C)onservi o (E)limini": PRINT 
TAB ( 5)"il contenuto della lista ";P$ (C, 0)"?" ; 

GOSUB 80: IF A3 < > "C" AND A3 < > "E" THEN 2770 

HOME : VTAB 12: PRINT TAB( 2)"Sto cambiando il nome alla ca 

tegoria" 

PS (C,0) = BS:P = 0: IF A3 = "C" THEN 2820 

FOR P = 1 TO 40: IF NOT LEN (P$(C,P)) THEN NEXT : GOTO 28 
20 

P$(C,P) = "":P% (C, P) = 0: NEXT 

GOTO 2430 

REM 

REM " Aggiunge una categoria 
REM 

IF CTG < 40 THEN 2890 

HOME : GOSUB 1590: VTAB 9: PRINT CHR3 (7)"Hai raggiunto il 
limite di 40 categorie.Puoi aggiungere una nuova categoria s 
olodopo aver eliminato una categoria nella lista." 

VTAB 23: GOSUB 1610: GOTO 2430 

VTAB 12: HTAB 1: CALL - 958: VTAB 16: PRINT TAB( 25)". 

.";: HTAB 1: POKE 34,15: INPUT "Inserisci una nuova 

categoria>";B3: TEXT : GOSUB 1710: IF NOT LEN (B3) THEN 2 
430: REM "15 PUNTI 
IF LEN (BS) > 15 THEN 2890 

GOSUB 70 :C = CTG:PS(C,0) = B3:P%(C,0) = 1: FOR P = 1 TO 40:P 
$(C,P) = "":P%(C, P) = 0: NEXT :CTG = CTG + 1: GOTO 2430 
REM 

REM " Prima esecuzione di SHOPPER. 

REM 

POKE 216,0: PRINT :P = PEEK (222): IF P < 5 OR P > 7 THEN 
PRINT "ERRORE N."P" A LINEA N." PEEK (218) + PEEK (219) * 2 

56: END 

P = 0:C = 0:A = 0 :B = 0:HT = 36:FS = "SHOPPER.VARS":D3 = CH 
R$ (4) 

HOME : GOSUB 1590: PRINT : PRINT : PRINT "Puoi:": PRINT : PR 
INT TAB( 8)"(I) Inserire categorie": PRINT : PRINT TAB( 8) 
"(Q) Finire": HTAB 1: VTAB 1: GOSUB 80: IF A3 = "Q" THEN 314 
0 

IF Aè > < "I" THEN 2970 

DIM P3 (39,40),P%(39, 40),PR%(39) :CTG = 0 

HOME : GOSUB 1590: PRINT : PRINT TAB( 8)"================== 

======": PRINT TAB ( 8)"! Preparazione Shopper !": PRINT TA 

B( 8)"========================": PRINT : PRINT : PRINT : REM 

"24/24 SEGNI = 

PRINT TAB ( 22)"." : PRINT : PRINT TAB ( 9) "Pre 

mi RETURN per finire": VTAB 15: POKE 34,14: HTAB 9: INPUT "N 
ome categoria->";B3: TEXT : GOSUB 1710 : PS(CTG,0) = B3: REM " 


15 PUNTI 

IF NOT LEN (PS(CTG,0)) AND CTG THEN PRINT DS"CREATE"F$",T 
VAR": GOTO 250 

IF NOT LEN (PS(CTG,0)) THEN 2630 

IF LEN (PS (CTG,0)) > 15 THEN VTAB 20: PRINT CHRS (7)"Voce 
troppo lunga.": PRINT : PRINT : GOSUB 1610: GOTO 3000 
BS = PS(CTG,0): GOSUB 70:P$(CTG,0) = B$:P%(CTG,0) = 1:CTG = 
CTG + 1: IF CTG = 40 THEN PRINT D$"CREATE"F$",TVAR"GOTO 2 
50 

GOTO 3000 
REM 

REM " Fine programma 
REM 

ONERR GOTO 3120 

VTAB 1: PRINT : PRINT D$"UNLOCK"F$: PRINT D$"STORE"F$: PRINT 
D$"LOCK"F$: GOTO 3140 

POKE 216,0:P = PEEK (222): IF P < 6 OR P > 9 THEN 2950 
HOME : VTAB 10: PRINT CHRS (7)"Controlla il drive prego,": 
PRINT : PRINT "e prova ancora a uscire da Shopper.": VTAB 23 
: GOSUB 1610: GOTO 350 


POKE 216,0: HOME : END 


Checksum del listato 1 

NOME FILE: 

SUPER.SHOPPER.PRODOS 

TIPO: A 


LUNGHEZZA: 

2554 

CHECKSUM : 

F8 


vete così liberato. Anche se la cosa 
non è documentata nei manuali del 
ProDOS, il ProDOS si comporta co¬ 
me il DOS quando cambiate il punta¬ 
tore di M inizio del programma Apple¬ 
soft" alle locazioni 103 e 104 nella 
pagina zero. Prendiamo in considera¬ 
zione un esempio che mostra come 
farlo. 

Supponiamo di avere una subrouti¬ 
ne in linguaggio macchina in un file 
binario chiamato ML, lungo 1K. li¬ 
na volta riassemblato per girare a 
$800 e salvato con BSAVE come 
ML il programma in Basic dev'esse¬ 
re modificato. I programmi in Apple¬ 
soft cominciano solitamente in me¬ 
moria a pagina 8 ($800) e procedono 
verso l’alto. Spostando un program¬ 
ma di quattro pagine a pagina 12 
($C00) si rende disponibile uno spa¬ 
zio 1K da $800 a $BFF. 

Il modo più facile per spostare un 
programma è quello di cambiare il 
puntatore a 103,104 e poi dire al 
ProDOS di caricare ed eseguire nuo¬ 
vamente il programma: 


10 PG = 12 : REM PAGINA CUI 
TRASFERIRE L’INIZIO DEL 
PROGRAMMA 

20 IF PEEK (104) = PG THEN 60 
30 POKE 104,PG : POKE 103,1 
40 POKE PG * 256,0 
50 PRINT CHR$(4) ”RUN MIO 
PROGRAMMA" 

60 PRINT CHR$(4) "BLOAD ML" 
70 REM INIZIO EFFETTIVO DEL 
PROGRAMMA 


Per completare questa conversione 
dovrete cambiare gli eventuali PE¬ 
EK, POKE e CALL in modo che ri¬ 
flettano la nuova locazione della vo¬ 
stra routine in linguaggio macchina. 
Se il vostro programma è lungo più 
di 6K e usa la pagina 1 dell’alta riso¬ 
luzione noterete probabilmente la 
scomparsa della fine del programma 
quando viene emesso il primo HGR. 
La soluzione consiste nel trasferire 
il programma appena sopra la pagi¬ 
na 1 Hi_Res a $4000 (pagina $40 
ossia pagina 64 decimale). Cambiate 
la linea 10 in PG = 64, ed ecco 
fatto. Questo metodo di spostare il 
programma in Basic per liberare me¬ 
moria è semplice e rapido. 

Il metodo finale di mettere una su¬ 
broutine in linguaggio macchina fra 
il BASIC.SYSTEM e i suoi file di 
buffer è complicato, e adatto soprat¬ 
tutto agli utenti avanzati che voglia¬ 
no aggiungere comandi al ProDOS. 


62 















Listato 2. Super Shopper 


DOS 3.3 


ProDOS 


Apple Ile 


Modifiche del listato 1 per il DOS 
3.3. Introdurre prima il listato 1; 
poi eliminare (DEL) le seguenti linee: 

1330, 1360, 1370, 2960, 3120 e 3130. Infine 
aggiungere o sostituire le linee visibili qui sotto. 


Apple Ile 


9 REM "Questa versione funziona in DOS 3.3 o 
ProDOS 

105 P - 0 :C = 0 : A = 0:B = 0:D$ = CHRS (4) :HT = 
36:F$ = "SHOPPER DATA" 

195 PRINT D$"NOMONCIO" 

205 PRINT D$"UNLOCK"F$: PRINT D$"OPEN"F$" / LI8": 

PRINT D$"READ"F$",R0": INPUT CTG: DIM P$(3 
9, 40),PR%(39),P%(39,40):LCTG = CTG: POKE 21 
6 / 0 

210 FOR C = 0 TO CTG - 1: FOR P = 0 TO 40: PRIN 
T D$"READ"F$",R"C * 41 + P + 1: INPUT P$ (C, 
P),P%(C,P): IF NOT LEN (P$(C,P)) THEN P = 

40 

215 NEXT : NEXT : PRINT D$"CLOSE" 

700 GOSUB 3190: FOR C = 0 TO CTG - 1: FOR P = 1 
TO 40: IF P%(C,P) THEN P%(C,P) = 0: GOSUB 
3200 

705 NEXT : NEXT : GOSUB 3210: GOTO 350 
730 IF A$ = "Y" THEN P%(C,P) = 0: GOSUB 1620: G 
OSUB 3180: GOTO 760 

810 GOSUB 1650: IF NOT LEN (P$(C,1>) THEN P = 
1: GOSUB 3190: GOTO 850 

830 GOSUB 1890: GOSUB 1600: GOSUB 3190: IF P = 
NP THEN 850 

840 A = P: FOR P = NP TO A + 1 STEP - 1:P$(C,P 

) = P$(C,P - 1):P% (C,P) = P%(C,P - 1): GOSU 

B 3200: NEXT 

850 P$(C,P) = B$:P%(C / P) = B: GOSUB 3200: GOSUB 

3210: IF P = NP THEN GOSUB 1620: GOTO 510 
950 GOSUB 3190: IF P = NP THEN VP = VP - 1 

960 IF P < 40 THEN P$(C,P) = P$ (C,P + 1):P%(C,P 

) = P%(C,P + 1): GOSUB 3200: IF NOT LEN ( 
P$(C,P)) THEN GOSUB 3210: GOSUB 1600: GOTO 
500 

970 IF P = 40 THEN P$(C,P) = ,, ":P%(C / P) = 0: GO 
SUB 3200: GOSUB 3210: GOSUB 1600: GOTO 500 
1040 P$(C,P) - B$:P% (C,P) = B: GOSUB 1620: GOSU 

B 3180: GOTO 510 

1080 GOSUB 1600: PRINT TAB( 2)"Scegli l'artico 
lo da listare si/no": GOSUB 1890:P%(C,P) = 
NOT P%(C,P): GOSUB 1600: GOSUB 1620: GOS 
UB 3180: GOTO 510 

1190 GOSUB 1770: GOSUB 3190: FOR P = 1 TO 40: G 
OSUB 3200: IF NOT LEN (P$(C,P)) THEN P = 
40 

1195 NEXT : GOSUB 3210: GOTO 510 
1340 PRINT D$"PR#"PSLOT: PRINT : VTAB 14: CALL 
- 958: PRINT PINITS: IF A$ = "A" THEN PR 
INT P80$: GOTO 1380 
1350 PRINT P132$ 

2170 HC = 0: FOR C = 0 TO CTG - 1: HTAB B: PRIN 
T P$ (C,0) : NEXT 

2580 HOME : VTAB 12: PRINT TAB( 5)"Sto elimina 
ndo "P$ (C, 0) : GOSUB 3190 
2600 FOR C = C TO CTG - 2: FOR P = 0 TO 40: IF 
P$(C,P) < > P$(C + 1,P) THEN P$(C,P) = P$ 

(C + l,P):P%(C f P) = P%(C + 1,P): GOSUB 320 
0 

2605 NEXT : NEXT 

2610 CTG = CTG - 1:P = 0 

2612 IF LEN (P$(CTG,P)) THEN P$(CTG,P) « "":P% 
(CTG,P) = 0: GOSUB 3200:P = P + 1: IF P < 

41 THEN 2612 

2615 GOSUB 3220: GOSUB 3210: IF CTG THEN 2430 
2790 GOSUB 3190:P$(C/0) = B$:P = 0: GOSUB 3200: 
IF A$ = "C" THEN 2820 

2810 P$(C/P) = "":P% (C/P) = 0: GOSUB 3200: NEXT 

2820 GOSUB 3210: GOTO 2430 

2910 C = CTG:P = 0: GOSUB 70:P$(C/0) = B$:P%(C, 
0) = 1: GOSUB 3190: GOSUB 3200: FOR P = 1 
TO 40 :P$ (C,P) = "":P% (C,P) = 0: GOSUB 3200 
: NEXT :CTG = CTG + 1; GOSUB 3220: GOSUB 3 
210: GOTO 2430 

2950 POKE 216/0: PRINT : PRINT D$"CLOSE":P = P 
EEK (222): IF P < 5 OR P > 6 THEN PRINT " 
ERRORE N."P" ALLA LINEA N." PEEK (218) + 

(Continua) 


Glfem 

Corso Italia 149 ■ 34170 GORIZIA 
Telefono 0481/30909 


MIRROR TECHNOLOGIES 


MagNet 20 Disco rigido da 20 MByte interno per 
Mac. Viene fornito con MacServe software della 
Infosphere che permette: 

Multillser (sino a 16 MAC in rete AppleTalk) 
Partizione in volumi (sino a 16 volumi logici) 

Disk Cache 

Protezione con Password a livello di volume 
Spool di stampa (sino a 32 lavori) 

Print Server/Disk Server su Apple Talk 
Backup completo o incrementale e Restore 
Sistema di gestione gerarchico APPLE HFS 
Costruzione estremamente robusta. 


SEOrange Alierò 

■■ ine. 

Ora in Italia, distribuite da Elcom, le interfacce 
per stampanti della Orange Micro, California, 
U.S.A. 

HOT LINK Per collegare a Apple Ile una 
qualunque stampante parallela 
GRAPPLER C Permette una facile stampa della 
grafica su qualunque stampante parallela che 
simula una ImageWriter II 
GRAPPLER + SERIALE Finalmente semplice la 
stampa grafica, anche a colori , con ImageWriter 
II. Opzionale un Buffer sino a 64 K 
GRAPPLER + La più diffusa interfaccia per 
Apple. Più di 300.000 schede vendute. Si 
abbina ad un gran numero di stampanti e 
permette la stampa grafica con ben 27 funzioni 
IMAGE BUFFER II "turbo" per l’IMAGE WRITER 
II. 64 K di buffer espandibili a 128 K 
IMAGE MATE Permette di usare IMAGE WRITER 
Il con un PC o compatibile ed è, allo stesso 
tempo, un buffer da 64 K. 

Tutte le schede hanno un ricco manuale in 
italiano. 


THUNDERSCAN V. 3.1 


E’ ora disponibile l'ultimissima versione di 
ThunderScan. Compatibile con tutte le stampanti 
Apple. Con un adattatore ed un cavo speciale é 
ora possibile usarla anche con Macintosh Plus . 


VICOM COMMUNICATIONS SOFTWARE 


Il "Vero programma per comunicazioni” é ora disponi¬ 
bile in Italia. Permette il collegamento con tutte le ban¬ 
che dati: anche Videotel. Multitasking: contemporanea¬ 
mente potete trasmettere un file mentre ne stampate 
un'altro e ne state creando un terzo. Emulazione VT 
100. Facile da usare. In combinazione con il Modem- 
phone 1203 in offerta speciale presso gli Apple Center. 



I prodotti distribuiti da Elcom sono disponibili 
presso tutti gli Apple Center. 



63 






















Nomi dei file e 
numeri dei volumi 

Il ProDOS ha norme rigorose per 
i nomi di file. 

Un nome di file in ProDOS deve 
sempre cominciare con una lettera, 
comprendere soltanto lettere, nume¬ 
ri e punti, e contenere al massimo 
15 caratteri. 

Fa spicco l'assenza, dal novero dei 
componenti del nome di file del Pro¬ 
DOS, dello spazio, che di solito è 
sostituito da un punto. 

Un.vero.peccato. 

Ottemperare a questa limitazione 
può essere complicato. E’ facile ab¬ 
breviare e cambiare il nome dei file 
del vostro programma: la utility 
CONVERT del ProDOS lo fa auto¬ 
maticamente per voi. 

Il problema è che i comandi DOS 
incorporati nel vostro programma 
fanno ancora riferimento ai file u- 
sando i loro vecchi nomi DOS. Sco¬ 
vare e cambiare i vecchi nomi di file 
nel programma può richiedere diver¬ 
se sedute con un buon editor di linee 
di programma. 

Cambia anche la prassi del DOS 
di far riferimento a un dischetto con 
il suo numero di volume. In Pro¬ 
DOS ci si riferisce a un dischetto 
con il suo prefix, o nome. 

Inoltre quando si dà al ProDOS un 
nome di dischetto con cui lavorare e- 
splorerà, per trovare quel dischetto, 
tutti i dispositivi di memoria in 
linea. 

I numeri di volume erano raramen¬ 
te usati nel DOS, eccezion fatta per 
gli schemi di protezione. 

Comunque se i vostri programmi 
contengono riferimenti al numero di 
volume, non dovete preoccuparvi: 
infatti non è tassativo rimuoverli, in 
quanto il ProDOS non farà che igno¬ 
rarli. 


Il comando 
<CONTROL>D 

Il ProDOS non esige più che un 
comando emesso dall'intemo di un 
programma sia preceduto da un ritor¬ 
no carrello. Il comando sarà eseguito 
quando il cursore di output è in qual¬ 
siasi punto dello schermo. Perfino i 
GET non turbano il ProDOS. C’è 
però un trucco da tener presente. Il 
primo carattere della stringa di co¬ 
mando dev'essere <CTRL>D, senza 
eccezioni. 

Potete usare PRINT CHR$(4)"co- 
mando", o D$=CHR$(4):PRINT D$ 
"comando”, o perfino incorporare un 
invisibile <CTRL>D tra le virgolet¬ 
te alte ("”) in un’istruzione PRINT. 

Ma se userete l'accorgimento D$= 
CHR$(13)+CHR$(4) esso non fun¬ 
zionerà. Togliete il "CHR$(13)+" e 
sarete a posto. 

Variazioni nei 
comandi del DOS 

Il ProDOS ha riorganizzato i co¬ 
mandi a disposizione dei programma- 
tori. Alcuni comandi sono scompar¬ 
si, alcuni sono cambiati e qualcuno 
è nuovo. Ecco i comandi del DOS 
che il ProDOS non usa: 

MON, NOMON e MAXFI- 
LES - MON e NOMON aiutano 
nel debugging dei programmi che u- 
sano i comandi DOS. Il ProDOS 
non supporta nè l'uno nè faltro; i- 
gnora i comandi NOMON, e il co¬ 
mando MON provoca un messaggio 
di SYNTAX ERROR. MAXFILES 
imposta il numero massimo dei file 
che possono essere aperti simultanea¬ 
mente in DOS. E' utilizzato soprat¬ 
tutto per recuperare memoria per le 
routine in linguaggio macchina, e- 
mettendo un comando MAXFILES 
1. In ProDOS si possono aprire in u¬ 


na sola volta fino a otto file, ed es¬ 
si consumano memoria solo quando 
sono effettivamente aperti. Perciò 
MAXFILES non è più necessario ed 
è bene eliminarlo. 

FP, INT e INTT - Il ProDOS 
supporta solo l'Applesoft della 
ROM, e quindi non ha più bisogno 
di commutare fra linguaggio e lin¬ 
guaggio. Dite addio a FP e INT. An¬ 
che INIT è scomparso, a causa della 
grande varietà di dispositivi possibi¬ 
le (e quindi formattabile) in Pro¬ 
DOS , e della piccola quantità di me¬ 
moria disponibile per la formattazio¬ 
ne delle routine. Adesso è il pro¬ 
gramma FILER del sistema Pro¬ 
DOS a occuparsi dei compiti di ini- 
zializzazione. La scomparsa di INIT 
significa anche che un dischetto il 
quale carichi PRODOS e BA¬ 
SIC.SYSTEM deve avere il proprio 
programma di avviamento denomina¬ 
to "STARTUP". Quando convertite 
i programmi in ProDOS, o il pro¬ 
gramma convertito, o un program¬ 
ma di menù, o semplicemente un 
programma per far girare il vostro 
programma, dev'essere chiamato 
STARTUP. 

Sono stati potenziati quattordici 
comandi del DOS, diversi dei quali 
rivestono un particolare interesse 
quando si convertono i programmi 
DOS in ProDOS. Essi sono: 

CATALOG e CAT - CATA- 
LOG usa un nuovo formato di visua¬ 
lizzazione, con circa 80 caratteri per 
riga. Questo display comprende più 
informazioni di un catalogo DOS, 
ed esse comprendono lunghezza e in¬ 
dirizzo del file, lunghezza del record 
(per i file di testo) e le date di crea¬ 
zione e di ultima modifica del file. 
La versione breve del comando, 
CAT, crea un catalogo più corto, su 
40 colonne, contenente meno infor¬ 
mazioni. Il catalogo CAT è più si- 


PEEK (219) * 256: END 

3020 IF NOT LEN (P$(CTG,0)) AND CTG THEN 3065 

3050 B$ = P$(CTG,0): GOSUB 70:P$(CTG,0) = B$:P% 
(CTG,0) = 1 :CTG = CTG + 1: IF CTG = 40 THE 
N 3065 

3065 LCTG = CTG: HOME : VTAB 12: PRINT TAB ( 10 
)"Sto creando il file...": GOSUB 3230: GOT 
O 250 

3100 VTAB 1: PRINT : IF CTG = > LCTG THEN PRI 

NT D$"LOCK"F$: GOTO 3140 

3110 HOME : VTAB 12: PRINT TAB ( 3)"Sto ottimiz 
zando i dati della spesa": GOSUB 3230: PRI 
NT D$"LOCK"F$ 

3150 REM 

3160 REM " Scrittura Dati su disco (versione 
DOS) 

3170 REM 

3180 GOSUB 3190: GOSUB 3200: GOSUB 3210: RETURN 

3190 VTAB 1: PRINT : PRINT D$"OPEN"F$",L18": RE 


TURN 

3200 VTAB 1: PRINT D$"WRITE"F$",R"C * 41 + P + 
1: PRINT P$ (C,P) : PRINT P%(C,P): RETURN 
3210 PRINT D$"CLOSE": RETURN 

3220 PRINT D$"WRITE"F$",R0": PRINT CTG: RETURN 
3230 GOSUB 3190: GOSUB 3210: PRINT D$"DELETE"F$ 
: GOSUB 3190: GOSUB 3220: FOR C = 0 TO CTG 
- 1: FOR P = 0 TO 40: GOSUB 3200: NEXT : 
NEXT : GOSUB 3210: RETURN 


Checksum del listato 2 

NOME FILE: 

SUPER.SHOPPER.DOS 

TIPO: A 


LUNGHEZZA: 

2774 

CHECKSUM : 

6 C 


64 





mile al catalogo del DOS, e in un 
programma convertito è probabile 
che dobbiate cambiare i CATALOG 
in CAT. 

IN# e PR# - A questi due co¬ 
mandi è stato dato un nuovo messag¬ 
gio d'errore con cui giocare: DEVI- 
CE NOT CONNECTED (dispositi¬ 
vo non collegato). Questo significa 
che i programmi che si rivolgono a 
dispositivi periferici (stampanti, 
schede 80 colonne e così via) posso¬ 
no individuare se nell'Apple è inseri¬ 
ta una scheda d'interfaccia. Ne sono 
un esempio le linee 1320-1370 del 
listato 1. 

CHAIN - In DOS per concatena¬ 
re un programma con un altro dove¬ 
vate ricorrere a uno speciale program¬ 
ma di utilità. 

In ProDOS vi basta emettere il co¬ 
mando come fareste con un "RUN 
nomefile", e il nuovo programma si 
sovrapporrà a quello vecchio, con 
tutte le variabili intatte. 

Potete persino specificare il nume¬ 
ro di linea da cui cominciare a ese¬ 
guire il programma concatenato, u- 
sando il nuovo parametro di simbo¬ 
lo "@ M . 

Per esempio: 


200 PRINT CHR$(4) "CHAIN PAR 
T2,@50"_ 

conserva tutte le variabili correnti, 
carica il programma PART2 e co¬ 
mincia l’esecuzione a linea 50. Se 
non c’è linea 50 il ProDOS usa la 
prossima linea disponibile. 

I comandi dei file di testo 
- Ci sono stati molti cambiamenti 
nei comandi dei file di testo, ma 
quelli più suscettibili di avere un im¬ 
patto sulle vostre conversioni di pro¬ 
grammi sono i comandi concernenti 
il modo in cui sono gestiti i file a- 
perti. Il ProDOS, per esempio, gene¬ 
ra un messaggio d'errore se il vostro 
programma finisce e ci sono ancora 
file aperti. Inoltre il ProDOS è mol¬ 
to più pignolo su ciò che potete fa¬ 
re per aprire i file. Per esempio non 
potete eliminare con DELETE un fi¬ 
le aperto. E non funzionerà il vec¬ 
chio trucco del DOS, di assicurarvi 
che state scrivendo in un nuovo file 
facendo OPEN-DELETE-OPEN- 
WRITE. I vostri sforzi avranno co¬ 
me risultato un messaggio d'errore 
FILE BUSY (file occupato). Dovete 
usare la sequenza OPEN-CLOSE- 
DELETE-OPEN-WRITE. 


C'è un problema analogo per i file 
EXEC. In DOS potevate fermare l'E- 
XEC dall'interno di un programma 
con un CLOSE. In ProDOS un file 
che viene eseguito da un program¬ 
ma rimane attivo fino a quando o il 
programma termina o fa qualcosa 
per prelevare un carattere di troppo 
dal file EXEC, causando un errore. 
Ricordate che quando un file EXEC 
è attivo qualsiasi INPUT o GET in 
un programma aggira la tastiera e 
prende il suo input dal file EXEC a- 
perto. Non potete comunicare con il 
vostro programma fino a quando il 
file EXEC sarà inattivo. E' questo 
un problema che a quanto pare non 
ha alcuna soluzione elegante, se non 
quella di evitare di fare l'EXEC dei 
file dall'interno dei programmi. 

Modifiche ai 
codici di errore 

Per quanto l'Apple abbia fatto di 
tutto per mantenere identici a quelli 
del DOS i codici d'errore che ricavate 
da un PEEK(222) è stata necessaria 
qualche modifica. 

In linea generale può darsi che sia¬ 
no necessari alcuni piccoli cambia- 


Anche 1.000.000 di sconto 
a professori e studenti. 



Fino al 29 agosto, i professori e gli 
studenti delFultimo anno di scuola 
media superiore, i docenti e gli 
allievi dell’università, possono 
aderire al programma "Apple per la 
Scuola Italiana". Tutti i prodotti, il 
software, gli sconti, gli speciali 
finanziamenti, vi attendono da: 


Apple Center 


c.e. Communications engineering s.r.l. 


Piazza Firenze, 4 - 20154 MILANO - Tel. 02/3182122 


•/••• ■ ■- ■ ' • - ■ ••••. 


Apple e il marchio Apple sono marchi registrati della Apple Computer Ine. 

















Tavola 2. Lista d'impiego delle variabili 

Variabile 

Funzione 

A 

Impiego generale 

A$ 

Impiego generale 

AN$ 

Modo programma 

B 

Impiego generale 

B$ 

Impiego generale 

C 

Categoria corrente (0-39) 

CLM 

Numero delle colonne del tabulato 

CTG 

Numero delle categorie usate (0-40) 

D$ 

Variabile = CHFt*(4) 

F$ 

Variabile = nome file dati 

HC 

HTAB corrente per la lista categorie 

HP 

HTAB corrente per la lista prodotti 

HT 

Costante per il controllo tab stampante (=36) 

NP 

Numero dei prodotti nell'ultima lista stampata sullo schermo 

P 

Prodotto corrente (0-40) (0 = nome categoria) 

PI 32$ 

Codice controllo stampante 132 colonne 

P80$ 

Codice controllo stampante 80 colonne 

PCS 

Codice controllo stampante per evidenziare nome categoria 

PFF$ 

Codice controllo per avanzamento modulo 

PINIT$ 

Stringa inizializzazione stampante 

PN$ 

Codice controllo stampante per stampa normale 

PR%() 

Puntatore di matrice (usato nella stampa) 

PSLOT 

Numero slot della stampante 

P$() 

Matrice nomi prodotto (39,40) 

P%() 

Matrice marcatori prodotto (39,40) 

ve 

VTAB corrente per la lista categorie 

VP 

VTAB corrente per la lista prodotti 


menti se fate qualche intrappolamen- 
to ONERR. Altrimenti non c’è pro¬ 
blema. 

Il ProDOS offre qualche nuovo co¬ 
mando e altri potenziamenti dei co¬ 
mandi esistenti. Per amor di brevità 
qui non vengono presentati tutti, ma 
solo quelli che hanno qualche rifles¬ 
so sul funzionamento in ProDOS 
del vostro programma in DOS. Per 
avere altre informazioni consultate 
la rubrica Applihelp su Applicando 
n.17 a pag.88. 

I cambiamenti 
in Applesoft 

Oltre a modificare i comandi DOS 
il ProDOS ha cambiato anche il mo¬ 
do in cui funzionano alcuni dei co¬ 
mandi dell'Applesoft: 

HIMEM - Questo comando era 
ed è usato soprattutto per proteggere 
le routine in linguaggio macchina 
dalla sovrascrittura in memoria. Pur¬ 


troppo il metodo è interamente diver¬ 
so in ProDOS. E’ meglio rimuovere 
dal vostro programma gli eventuali 
HIMEM. Se vi occorre spazio per le 
routine consultate più sopra il para¬ 
grafo sull’uso della memoria. 

X=FRE(0) - Rimane un coman¬ 
do valido dell'Applesoft, e funziona 
esattamente come prima. Il guaio è 
che è di una lentezza glaciale! Il Pro¬ 
DOS provvede automaticamente a u- 
na garbage collection molto veloce, 
e quindi potrete probabilmente to¬ 
gliere da un programma che state 
convertendo le eventuali istruzioni 
FRE(O). Se per qualche ragione vole¬ 
te forzare la garbage collection usa¬ 
te il comando PRINT CHR$(4) 
"ERE". 

Per controllare quanta memoria li¬ 
bera vi rimanga fate: 


PRINT CHR$(4)’’FRE":X=(PEEK 
(111)+PEEK(112)*256)-(PEEK 


E’ molto, molto più veloce. 

TRACE e NOTRACE - H 
DOS soffocherebbe con questi due 
messaggi, e farebbe cose strane se a- 
priste i file di testo mentre TRACE 
è attivo. 

Il ProDOS è stato in gran parte 
guarito di questi problemi. 

I pericoli 
del ProDOS 

Ci sono alcune cose da cui guardar¬ 
vi quando convertite in ProDOS i 
vostri programmi. La più seria è che 
l'interprete Basic fornito con il Pro¬ 
DOS 1.1.1 ha un difetto di funziona¬ 
mento che causa l'attivazione del mo¬ 
do TRACE se trova una linea con 
un IF-THEN seguito da un'istruzio¬ 
ne FLASH, NORMAL, INVERSE, 
TRACE o NOTRACE. La soluzio¬ 
ne consiste nel mettere un segno di 
due punti fra il THEN e l'istruzione 
seguente. 

Un altro fenomeno che lascia per¬ 
plessi è l'improvvisa sparizione del¬ 
le variabili, senza preavviso. Non si 
tratta di un difetto di funzionamento, 
ma di una caratteristica non docu¬ 
mentata. 

Premendo <RESET>, per esem¬ 
pio, si cancellano le variabili. Inol¬ 
tre se siete in Monitor e tornate al 
Basic con il consueto 3D0G le vo¬ 
stre variabili saranno cancellate. E' 
probabilmente più sicuro seguire la 
via <CTRL>C <RETURN> per tor¬ 
nare dal Monitor al Basic. 

Il ProDOS Versione 1.1.1 ha an¬ 
che un nuovo comando, che dev'esse¬ 
re ancora documentato. E' il coman¬ 
do BYE, che viene utilizzato per u- 
scire dall'interprete Basic e far girare 
un programma di altro sistema. 
Quando viene eseguito BYE vengo¬ 
no visualizzati i prompt che sono u- 
sati per uscire dai programmi FI- 
LER o CONVERT, e che vi chiedo¬ 
no il prefix e il nome di file della 
prossima applicazione. Questo co¬ 
mando rende possibile modificare la 
linea 3140 di Super Shopper in mo¬ 
do che finisca con un BYE, portando 
così senza intoppi alla successiva ap¬ 
plicazione. 

f “ \ 

Questo programma è disponibile 
su dischetto. L’elenco, i prezzi 
e le modalità d’ordine di questo 
e degli altri dischetti disponibili 
sono riportati nella rubrica 
Disk Service. 

^_ J 


© By Nibble e Applicando 


66 








Lo spirito deduttivo è l'arma con cui condurre questa fida al tiranno di Ra- 
dion, in un avvincente gioco di strategia per Macintosh. 


Dentro la reggia 
e dietro tante porte 


Un pallido puntino di luce brilla 
per un istante nell'opprimente cielo 
che sovrasta i possedimenti imperia¬ 
li. Il mercante Breothiano sta ripar¬ 
tendo per una missione su un piane¬ 
ta straniero. Ti sembra di sentire il 
pulsare dei suoi motori quando l’a¬ 
stronave lascia l'orbita di Radion. U- 
na folata di nostalgia affiora sulle on¬ 
de di un vinaccio da quattro soldi. 
Questo è il destino di tutti gli amba¬ 
sciatori, pensi soffocando l'impulso 
di lamentarti. L'astronave scompare, 
e con lei se ne va il Capitano Men- 
teur e la sua ciurma. 

Ambasciatore! Come avresti potu¬ 
to saperlo quando hai firmato per 
questo lavoro? Promosso da Appren¬ 
dista musicista di terza classe ad Am¬ 
basciatore su Radion, con un sorriso 
e una pacca sulla spalla dal Capita¬ 
no. Un attimo prima stavi suonan¬ 


do la chitarra nel cortile della caser¬ 
ma, e due ore dopo eri nel castello 
imperiale, sede della Corporazione 
intergalattica dei mercanti e dei ban¬ 
chieri, valigie alla mano. 

Ambasciatore su Radion... ovun¬ 
que possa essere Radion. 

Una fitta nelle spalle ti scuote dai 
sogni di gloria. Un'altra puntura. Ti 
volti con fare battagliero. Dietro di 
te, di fronte a una co- ^ 
struzione che sembra 
una sputacchiera se¬ 
midistrutta, si trova 
un tritone deforme. 

Ha con sè un lucci 


r~ 


a 





li 










il 


E 


□□□□□□□□□□□□□□□ 
□□□□□□□□□□□□□□□ 
czs □□□□□□□□□□□□ tu 
□ □□□□□□□□□□□□□ 
□□I__ 




cante scudo cristallino e un'affilatis¬ 
sima alabarda. Cerchi di prendere il 
tuo Ultralator per decifrare i borbot¬ 
tìi della lucertola, ma il tritone ti fa 
segno di proseguire agitando l'alabar¬ 
da. Non c'è bisogno del traduttore, 



é Rrchiuio Griglio Guardie Gioco Soluzione 


GRIGLIA RfìDION 




GRIGLIR TEST 



© 









© 



































© 


© 





















© 
























© 




□ 





© 


* 



Figura 1. La griglia di gioco e la griglia per gli appunti. 


capisci benissi¬ 
mo: ti ordina di 
passare attraverso 
r uno stretto passaggio. 
Come farebbe ogni 
buon Ambasciatore tralasci le anghe¬ 
rie per un trattamento così barbaro, 
con un senso di superiorità verso 
quel bambinesco selvaggio. Appena 
oltrepassi il cancello senti la porta 
sbattere alle tue spalle. Ti trovi in 
una grande stanza, dalle pareti e dal 
soffitto ricoperti di specchi. Al cen¬ 
tro del locale c'è un'immensa costru¬ 
zione intarsiata di passaggi. Dietro 
le pareti senti un borbottio sommes¬ 
so. Ti volti e noti un sottile fogliet¬ 
to di carta appeso a un muro. 

Lo leggi: " Benvenuto nella sala- 
giochi del Tiranno di Radion. Lo 
scopo del gioco è trovare le guardie 
nascoste alTinterno della costruzione 
nera. Se le trovi tutte hai vinto, altri¬ 
menti hai perso. Oppure , per rendere 
più interessante il gioco: vinci e ri¬ 
marrai in vita, perdi e ti lasceremo 
in pasto alla folla qui fuori... Qual- 


67 
























































































cosa in più di una sfida!" Inghiottì 
in fretta l'ultimo sorso di vino. Sì, 
dovrai farcela, dovrai vincere, e atten¬ 
dere in questo inferno affollato di tri¬ 
toni il ritorno dell'astronave Breotha- 
na... Per digitare il listato del pro¬ 
gramma, caricate un disco con la ver¬ 
sione binaria o decimale del Microso¬ 
ft Basic 2.0 o 2.1, fate due volte cli¬ 
ck sull'icona del Basic. Apparsa la fi¬ 
nestra di List, battete il programma 
del listato 1 e salvatelo con il no¬ 
me che preferite. 


Listato 1. Radion Tyrant 


' Radion Tyrant by Duff Caldewey 
' ©1986 Applicando & Microsparc. Ine. 

' Microsoft BASIC 2.0 e 2.1 (binario) 

CLS 

CLEAR , 27000 
WINDOW CLOSE 1 
DEFINT a-z 

ON MENU GOSUB getMenu 

' Dimensiona le matrici 
DIM gray(3), last It em (5 ) , grid(2,9,9), watch(33) 

DIM guard(17), zap(17), bounce(17), miss(17) / inGrid(17), outGri • 
d (17) 

DIM title$ (2) 


Alcune righe del listato sono 
state spezzate per esigenze di 
impagmazione: 
quando incontrate il simbolo • 
continuate a battere SENZA 
PREMERE <return> 


Come si gioca 
a Radion Tyrant 


' Legge i dati per il cursore a orologio 
RESTORE 10 

FOR j = 0 TO 33 : READ watch ( j) :NEXT 
CALL SETCURSOR(VARPTR(watch(0))) 


All’inizio della partita vi verranno 
presentate due griglie di 8 x 8 quadra¬ 
ti, una barra dei menù e cinque me¬ 
nù. La griglia nera, sulla sinistra, in¬ 
titolata Griglia Radion, è la rappre¬ 
sentazione bidimensionale dell'edifi¬ 
cio nero. La griglia bianca sulla de¬ 
stra è la Griglia Test. Entrambe le 
griglie sono circondate da quadrati di 
richiesta. Il gioco vero e proprio si e- 
segue sulla Griglia Radion, mentre 
la Griglia Test è una specie di bloc¬ 
co per appunti che vi servirà per vi- 


' Inizializza le finestre 

WINDOW 2 /'Griglia di test",(260,50)-(490,300),4 

WINDOW 1, , (10,50)-(240, 300),4 

WINDOW OUTPUT 1 

title$(l)="GRIGLIA RADION" 

title$(2)“"GRIGLIA TEST" 

' Inizializza le pedine 
FOR j =0 TO 17 : READ zap(j):NEXT 
FOR j=0 TO 17:READ bounce(j):NEXT 
FOR j=0 TO 17 : READ guard(j) :NEXT 
FOR j=0 TO 17-.READ inGr id ( j ) : NEXT 
FOR j“0 TO 17 : READ outGrid(j) :NEXT 

FOR j = 0 TO 3 

gray(j) = -21931 

NEXT 


Tavola 1. Descrizione del programma 


ROUTINE DI INIZIALIZZAZIONE. 

Crea spazio neltheap per PMBasic, rimuove la finestra inizia¬ 
le, inizializza il controllo dei menù, le matrici, legge i dati per 
le icone e i segnalini. 

ROUTINE GENERICHE 

ChicagoFont: seleziona come fonte per la stampa Chi¬ 
cago. 

MonacoFont: seleziona come fonte per la stampa Mo¬ 
naco. 

ROUTINE PER IL CONTROLLO DEGLI EVENTI. 

Controllano l'attivazione della griglia di Test o della griglia 
Radion, nelle rispettive finestre. Le altre funzioni del control¬ 
lo di eventi sono inattive, e sono state incluse nel listato per 
uniformità strutturale. 

ButtonEvent: non usata. 

EditEvent: non usata. 

ActivateEvent: controlla se una finestra è stata attivata 
e passa a essa la stampa delle informazioni. 

GoAwayEvent: non usata. 

UpdateÉvent: non usata. 

ActivateWindow: determina se una finestra da attivare è 
nuova (attraverso una chiamata a DIALOG(3)) e nel caso ve¬ 
rifica se si tratta di una finestra attiva (cioè se il programma 
è in modo gioco o in modo soluzione) e se lo è toglie l'eviden- 
ziamento alla finestra precedente e evidenzia quella nuova, 
con la routine drawLines. La nuova finestra è attivata con il 
comando WINDOW windowID. Per trasferire l'uscita alla nuo¬ 
va finestra si opera con WINDOW OUTPUT windowID. 

SUBROUTINE PER IL CONTROLLO DEI MENU'. 

Verificano le interruzioni all'esecuzione forzate da interventi 
sulla barra dei menù. Se avvengono si eseguono le azioni ne¬ 
cessarie con un GOSUB o un GOTO alle subroutine corri¬ 


spondenti. 

GetMenu: determina quale menù è stato selezionato e qua¬ 
le comando all'interno di esso è stato scelto. L'esecuzione 
del programma è modificata con il comando ON MENU'. Se la 
selezione eseguita nel menù modifica lo svolgimento del gio¬ 
co, viene posto di fianco alla voce nel menù il segno di spun¬ 
ta con il comando (MENU', menuID, itemlD,2). 

FileMenu: offre la possibilità di ripetere il gioco o di tornare 
al Finder. 

GridMenu: attiva le finestre per le due griglie. 

GuardMenu: seleziona il numero di guardie da posiziona¬ 
re, quattro o cinque. 

GameMenu: seleziona la modalità di gioco, problema o ca¬ 
suale. Se viene scelto un problema allora vengono poste nel¬ 
la griglia solo quattro guardie e si disattiva la voce Cinque 
guardie nel menù corrispondente. 

SolutionMenu: l’esecuzione del programma è trasferita al¬ 
le routine che controllano la rispettiva fase di gioco. 

ROUTINE PER IL CONTROLLO DEL MOUSE. 

I movimenti del puntatore sul video e le azioni corrispondenti 
alla pressione del bottone non sono controllate dalle routine 
DIALOG. La funzione delle routine per il mouse è principal¬ 
mente di determinare se è stata compiuta una richiesta ac¬ 
cettabile sparando un raggio nella griglia. Successivamente 
le routine trackGuard e putGuard posizionano le pedine delle 
guardie e annotano la posizione nel vettore a loro riservato 
grid(x,y,z). 

PlotMouse: annota la posizione del cursore e attende fin¬ 
ché il bottone è rilasciato. 

GridStuff: controlla la posizione del cursore per vedere se 
A) si vuole posizionare una guardia in una griglia oppure B) si 
vuole sparare un raggio. In entrambi i casi controlla che il cur¬ 
sore sia nei limiti della griglia, in caso negativo il controllo tor¬ 
na al menù principale. 


68 












GOSUB newGame 
GOTO ma in 

chicagoFont: 

TEXTFONT(0) 

TEXTSIZE(12) 

RETURN 

monacoFont: 

TEXTFONT(3) 

TEXTSIZE(9) 

RETURN 

buttonEvent: 

RETURN 
editEvent: 

RETURN 

aetivateEvent: 

windowID=DIALOG(3) 

GOSUB aetivateWindow 
RETURN 
goAwayEvent: 

RETURN 
updateEvent: 

RETURN 

aetivateWindow: 

IF lastT=0 THEN T$=title$(l) 
s:RETURN 

IF lastT=windowID OR solve=l 

WINDOW OUTPUT windowID 

WINDOW windowID 

MENU 2,lastT,1 

MENU 2, windowID,2 

w=lastT 

GOSUB drawLines 
w=windowID 
lastT = windowID 
GOSUB drawLines 
RETURN 
drawLines: 


:lastT=l:w=lastT:GOSUB drawLine • 
THEN RETURN 


(Continua) 


sualizzare quello che accade durante 
la partita (figura 1). Cinque menù 
controllano tutte le fasi del gioco. 

1. Menù Archivio. Potete sce¬ 
gliere Nuova partita per iniziare un 
nuovo gioco, o Esci per tornare alla 
scrivania. 

2. Menù Griglia. Attiva la gri¬ 
glia Radion o la griglia Test. 

3. Menù Guardie. Permette di 
scegliere un gioco con quattro o cin¬ 
que guardie. Inizialmente ne sono se¬ 
lezionate quattro. 

4. Menù Gioco. Potete sceglie¬ 
re di avere delle guardie piazzate a 
caso, oppure secondo una delle ses¬ 
santa combinazioni memorizzate 
(Problema). Inizialmente il gioco è 
predisposto per giocare con le posi¬ 
zioni programmate, che sono, come 
suggerisce il nome dell’opzione, ab¬ 
bastanza complesse. Si fanno però 
più chiare a mano a mano che il gio¬ 
co procede. Giocando con i problemi 
si posizionano nella griglia sempre 
quattro guardie. 

5. Menù Soluzioni. Quando 
pensate di sapere dove sono le guar¬ 
die scegliete Tentativo nel menù So¬ 
luzioni. Per indicare dove ritenete 


SUBROUTINE PER IL PIAZZAMENTO DELLE 
GUARDIE 

TrackGuard: determina quale matrice deve essere usata 
per memorizzare la posizione di una guardia. 

PutGuard: piazza le pedine delle guardie nella griglia. 

SUBROUTINE DI TEST. 

Controllano il percorso del laser aH'interno della griglia dal 
punto di ingresso al punto di uscita. Determinato il percorso 
posizionano le pedine nelle appropriate caselle. 

TopCheck: predispone i parametri per tracciare un raggio 
che parte dalle caselle sul bordo superiore o inferiore. 
CheckTPath: controlla la presenza di ostacoli sul percor¬ 
so verticale. 

CheckTBorder: controlla se una guardia ostruisce un in¬ 
gresso della griglia, in caso di un raggio sparato vertical¬ 
mente. 

SideCheck: predispone i parametri per tracciare un raggio 
sparato lateralmente. 

CheckSPath: controlla la presenza di ostacoli sul percor¬ 
so orizzontale. 

CheckTBorder: controlla se una guardia ostruisce un in¬ 
gresso della griglia, in caso di raggio sparato orizzontal¬ 
mente. 

ROUTINE DI POSIZIONAMENTO DELLE PEDINE 
PutToken: determina, controllando l'esito di uno sparo, lo 
stato del gioco, la finestra attiva nella quale devono essere 
posizionate le pedine. 

PutRGrid: posiziona le pedine in modo PSET o Copy. 
PutTGrid: posiziona le pedine con un XOR (fondo nero pe¬ 
dinabianca). 

ClearToken: cancella le pedine presenti scrivendo su di 
esse con un XOR, chiamando le subroutine ClearZap, Clear- 
Bounce e ClearMiss. 

GetMiss: carica le pedine nella matrice relativa, leggendo 
le informazioni contenute alla linea 20 dei DATA. 

LOOP PRINCIPALE. L'unico comando che gestisce gli 


interrupt usato è ON MENU', poi la routine principale control¬ 
la eventuali DIALOG e chiama le subroutine corrispondenti. 

Main: 

CheckMouse: trasferisce l'esecuzione a PlotMouse se è 
stata eseguita un'azione con il mouse. 

CheckDialog : controllo e chiamata di altre subroutine. 

ROUTINE PER I PARAMETRI DI GIOCO 

NewGame: riporta i menù alla condizione iniziale, cancella 
le finestre e ritraccia le griglie con DrawGrid, poi riposiziona 
i flag di gioco. 

SetGame: inizializza una partita leggendo i dati alla linea 
30 se si è scelto un problema (setPuzzle), o sistemando ca¬ 
sualmente le guardie (setRandom). 

FirstShot: disattiva i menù Guardie e Gioco, attiva nel me¬ 
nù Soluzioni le voci Tentativo e Mi arrendo... dopo che il pri¬ 
mo colpo è stato sparato. 

ROUTINE DI DIALOGO 

ClearWindow: trasforma la griglia di test in un box di dia¬ 
logo. 

ShotOut: tutte le pedine per i colpi a vuoto sono state usa¬ 
te. Termina il gioco. 

ShowSolution: sistema le guardie con un PUT nella loro 
posizione fisica, in corrispondenza con la loro posizione lo¬ 
gica (in PSET o in Copy), poi termina il gioco. 
GuessSolution: azzera il flag di soluzione, così che le 
guardie possano essere tracciate aH’interno della Griglia Ra¬ 
dion (in grid(0,x,y)). Apre la finestra n. 3 e scrive un mes¬ 
saggio che indica il cambiamento nella modalità di gioco. 
ScoreGame: confronta grid(0,x,y) con arid(1,x,yV Conta 
i colpi sparati, le guardie trovate e i colpi. Elabora il punteg¬ 
gio ottenuto e lo mostra nella rispettiva finestra. 

DATI 

Linea 10: dati per il cursore, l'orologio, i colpi, i rimbalzi, le 
guardie, il segno di raggio in ingresso e in uscita. 

Linea 20: dati per le sedici pedine di colpi a vuoto. 

Linea 30: dati per i problemi. 


69 





Interludio 


Grafica Interattiva 
per APPLE e 
DEC prò 

v. Borgo Melano 27 
51100 Pistoia 
tei. (0573) 

31307-8 



WINDOW OUTPUT w 

PENMODE(10) 

FOR j = 3 TO 13 STEP 2 
CALL MOVETO (l,j) 

CALL LINETO (115-( (LEN (title$(w))/2)*8),j) 

CALL MOVE ((LEN(title$(w)))*8,0) 

CALL LINETO (228,j) 

NEXT 

RETURN 

* 

getMenu: 

menuID = MENU(0) 
which = MENU(1) 

MENU menuID,0,1 'toglie evidenziamento 

MENU menuID,lastItem(menuID),1 

IF menuID > 2 AND menuID < 5 THEN MENU menuID,which,2 
lastItem(menuID) = which 

ON menuID GOTO fileMenu, gridMenu, guardMenu, gameMenu, solu • 
tionMenu 

RETURN main 
fileMenu: 

IF which = 1 THEN done = 0:GOTO newGame 'nuovo gioco 
IF which = 2 THEN END 'basic 
IF which = 3 THEN SYSTEM 'scrivania 

gridMenu: 

windowID = which 
GOSUB activateWindow 
guardMenu: 

guards = which + 3 
GOSUB setGame 
RETURN main 
gameMenu: 

puzzle = which 

IF puzzle = 1 THEN MENU 3,2,0 ELSE MENU 3,2,1 
guards = 4 
MENU 3,1,2 
GOSUB setGame 
RETURN main 
solutionMenu: 

IF which = 1 THEN guessSolution 
IF which = 2 THEN showSolution 
IF which = 3 THEN scoreGame 
RETURN main 

plotMouse: 

IF done = 1 THEN RETURN 
w = WINDOW(1) 

IF MOUSE(0) = -1 THEN plotMouse 
gridStuff: 

mi = MOUSE(1) 

m2 = MOUSE(2) 

token = 0 

bCheck = 0 

q - INT((ml-15)/20) 

r = INT((m2-30)/20) 

x=q:y=r 

IF (w=2 OR solve=l) AND (q=>l AND q=<8 AND r=>l AND r=<8) T • 
HEN trackGuard 

IF r = 9 OR q = 9 THEN incNo = -1 ELSE incNo = 1 
IF (q=0 OR q=9) AND (r > 0 AND r < 9) THEN sideCheck 
IF (r=0 OR r=9) AND (q > 0 AND q < 9) THEN topCheck 
RETURN 

trackGuard: ' Posiziona le guardie nella griglia di test 

IF solve - 0 AND iPass = 1 THEN GOSUB clearToken 
IF solve = 0 THEN LET grid(2,q,r) = ABS(grid(2,q,r) - 1) 

IF solve = 1 THEN LET grid(0,q,r) = ABS(grid(0,q,r)-1) 
putGuard: 

1 = 17 + (q * 20) 

T - 33 + (r * 20) 

PUT (1,T),guard 
RETURN 

topCheck: 
hit = 0 

IF x <1 OR x > 8 THEN RETURN 
y = y + incNo 
GOSUB checkTPath 
IF token > 0 THEN putToken 

IF hit = 3 THEN LET y = y - incNo:incNo = incNo * -l:GOTO si • 
deCheck 

IF hit = 4 THEN LET y = y - incNo:GOTO sideCheck 
GOTO topCheck 
checkTPath: 

IF (y=0) OR (y=9) THEN LET token = 3:RETURN 
IF grid(w,x,y) = 1 THEN LET token = 1:RETURN 
IF grid(w,x+incNo,y) = 1 THEN LET hit = 3 
IF grid(w,x-incNo,y) = 1 THEN LET hit - 4 

IF grid(w,x+1,y) = 1 AND grid (w,x-1,y) = 1 THEN token = 2 

IF bCheck = 0 THEN checkTBorder 

RETURN 

checkTBorder: 


70 











bCheck = 1 

IF grid(w,q-1,r+incNo)=1 OR grid (w,q+1,r+incNo)=1 THEN token • 

- 2 

RETURN 


sideCheck: 
hit = 0 

IF y < 1 OR y > 8 THEN RETURN 
x = x + incNo 
GOSUB checkSPath 
IF token > 0 THEN putToken 

IF hit = 3 THEN LET x = x - incNo:incNo - incNo * -l:GOTO to • 
pCheck 

IF hit = 4 THEN LET x = x - incNo:GOTO topCheck 
GOTO sideCheck 
checkSPath: 

IF (x=0) OR (x=9) THEN token = 3: RETURN 
IF grid(w,x,y) = 1 THEN token = 1:RETURN 
IF grid(w,x,y+incNo) = 1 THEN LET hit = 3 
IF grid(w,x,y-incNo) = 1 THEN LET hit * 4 

IF grid(w,x,y+1) = 1 AND grid (w,x,y-1) = 1 THEN token = 2 

IF bCheck = 0 THEN checkSBorder 

RETURN 

checkSBorder: 
bCheck = 1 

IF grid(w,q+incNo,r+1) =1 OR grid (w, q+incNo, r-1 ) =1 THEN token • 

= 2 

RETURN 


putToken: 

IF w = 1 AND fFlag = 0 THEN GOSUB FirstShot 

IF w = 1 AND iPass = 1 THEN GOSUB clearToken:WINDOW OUTPUT 1 

IF w = 2 AND iPass = 1 THEN GOSUB clearToken 

1 - 17 + (q * 20) 

T = 33 + (r * 20) 

ON w GOSUB putRGrid, putTGrid 
IF token < 3 THEN RETURN 
1 = 17 + (x * 20) 

T = 33 + (y * 20) 

IF w - 1 THEN PUT (1, T),miss,PSET 

IF w = 2 THEN LET oL - l:oT - T:PUT (1,T),outGrid 

RETURN 


putRGrid: 

shots = shots + 1 

IF token - 1 THEN PUT (1,T),zap,PSET 

IF token = 2 THEN PUT (1, T),bounce,PSET 

IF token = 3 THEN GOSUB getMiss:PUT (1,T),miss,PSET 

RETURN 


putTGrid: 

iL = l:iT = T:iPass = 
IF token = 1 THEN PUT 
IF token = 2 THEN PUT 
IF token = 3 THEN PUT 
RETURN 


l:iToken = token 
(1/T),zap 
(1, T),bounce 
(1, T),inGrid 


clearToken: 

WINDOW OUTPUT 2 
iPass = 0 

ON iToken GOTO clearZap, clearBounce, clearMiss 
clearZap: 

PUT (iL,iT),zap 
RETURN 
clearBounce: 

PUT (iL,iT),bounce 
RETURN 
clearMiss: 

PUT (iL,iT),inGrid 
PUT (oL,oT),outGrid 
RETURN 

getMiss: 

FOR j = 0 TO 17 
READ miss ( j) 

NEXT 

mCount = mCount + 1 

IF mCount > 16 THEN GOSUB shotOut: RETURN main 
RETURN 

main : 

CALL INITCURSOR 
w - WINDOW(0) 

WINDOW OUTPUT w 
checkMouse: 

event = DIALOG(O) 

IF event = 3 THEN checkDialog 

IF event = 0 AND MOUSE(0) = -1 THEN GOSUB plotMouse 
GOTO main 
checkDialog: 

ON event GOSUB buttonEvent, editEvent, activateEvent, goAway • 
Event, updateEvent 

goto main (Continua) 



(a) 



« 


(b) 



□ ftif. 

tjjl 

B 

(c) 


Figura 2. Tre possibili esiti di un tiro: 
riuscito (a), a vuoto (b), riflesso (c). 


possano essere fate click sul quadra¬ 
tino corrispondente nella Griglia Ra- 
dion, poi scegliete Punti nello stes¬ 
so menù per avere il punteggio. 

In qualsiasi momento, dopo aver 
fatto il primo test, potete scegliere 
Mi arrendo nel menù Soluzioni per 
vedere dove sono effettivamente le 
guardie. Queste appaiono in bianco 
nella griglia Radion, e il gioco ter¬ 
mina. 

Il giocò inizia quando sparate il 
primo raggio laser da uno dei punti 
di ingresso situati sui bordi della gri¬ 
glia. A mano a mano che la partita 


71 























































■i 


procede, diversi menù e comandi 
vengono disattivati: saranno disponi¬ 
bili solo iniziando un nuovo gioco. 

Come è possibile 
individuare le guardie 

La premessa per compiere le neces¬ 
sarie deduzioni è che voi siate rima¬ 
sti fuori dalla costruzione nera, timo¬ 
rosi di quello che potrebbe succedere 
al suo interno: le intenzioni delle 
guardie potrebbero essere poco genti¬ 
li. Per determinare la posizione di u- 
na guardia sparate un raggio laser in 
uno degli ingressi e annotate la posi¬ 
zione da cui riemerge. 

Gli scudi cristallini delle guardie 
hanno la proprietà di catturare ogni 
sorgente luminosa che li colpisca di¬ 
rettamente (figura 2a) e possono 
deviare un raggio che passi accanto a 
loro (figura 2b). Un raggio è sem¬ 
pre deviato di novanta gradi, a meno 
che non colpisca un secondo scudo a - 
diacente (per esempio se le due guar¬ 
die fossero una di fronte all'altra nel¬ 
la figura 2a, il raggio sarebbe devia¬ 
to). Oltre a essere deviato o assorbi¬ 
to, il percorso del raggio può subire 
una terza modificazione, cioè tornare 
al punto di ingresso. 11 ritorno si ve¬ 
rifica quando: 

• le guardie sono situate in maniera 
tale da non consentire la deviazione 
del raggio ad angolo retto rispetto a 
entrambe le guardie, oppure quando: 

• un raggio è sparato da un punto di 
ingresso prossimo a una guardia si¬ 
tuata sul bordo della griglia (figura 
2c). 

In entrambi i casi il raggio non ha 
modo di sfuggire e toma al punto di 
ingresso. 

In breve ci sono tre possibilità: 

1. Colpito: un raggio diretto su uno 
scudo (2a). 

2. Mancato: il raggio viene deviato 
o passa semplicemente da un'estre¬ 
mità alfaltra della griglia (2b). 

3. Riflesso: il raggio non può essere 
deviato ad angolo retto da uno scudo 
e quindi toma su se stesso. 

Poiché non potete vedere quello 
che accade al raggio mentre attraver¬ 
sa la griglia Radion, dovete dedurre 
la posizione delle guardie annotando 
la posizione di entrata e quella di u- 
scita. Per aiutarvi in questo compi¬ 
to, il programma dispone di tre tipi 
di pedine (figura 3): segnalimi che 
indicano i colpi a segno, quelli rifles¬ 
si e (sedici tipi differenti!) quelli a 
vuoto. 


newGame: 

FOR j = 2 TO 4 

lastltem(j) = 1 

NEXT 

IF dFlag = 1 THEN GOSUB clearWindow 

' Initial menu 
MENU OFF 

MENU 1,0,1,"Archivio" 

MENU 2,0,1, "Grigiia" 

MENU 3,0,1,"Guardie" 

MENU 4,0,1,"Gioco" 

MENU 5,0,1,"Soluzione" 

MENU 1,1,1,"Nuovo gioco " 

MENU 1,2, 1, "Esci—>BASIC" 

MENU 1,3,1, "Esci—Scrivania" 

MENU 2,1,2,"Griglia Radion" 

MENU 2,2,1,"Griglia Test" 

MENU 3,1,2,"Quattro Guardie" 

MENU 3,2,0,"Cinque Guardie" 

MENU 4,1,2 ,"Problema" 

MENU 4,2,1, "A caso..." 

MENU 5,1,0, "Tentativo..." 

MENU 5, 2,0, "Mi arrendo... " 

MENU 5,3,0,"Punteggio" 

MENU ON 

lastT=0 

FOR j = 1 TO 2 

WINDOW OUTPUT j 
CLS 

CALL MOVETO(122-((LEN(title$(j))/2)*8), 13) 

GOSUB chicagoFont 
PRINT title$ ( j) 

LINE (0,17)- (250, 17) 

NEXT 

WINDOW OUTPUT 1 
LINE (15,50)-(215,210),,bf 
LINE (35, 30)-(195,230),,bf 
PENPAT(VARPTR(gray(0))) 

PENMODE(11) 

GOSUB drawGrid 

x(0)=50:x(1)=35:x(2)=211:x(3)=196 
FRAMERECT(VARPTR(x(0))) 

PENNORMAL 
WINDOW OUTPUT 2 
PENMODE(9) 

LINE (15,50)-(215,210),,b 

LINE (35, 30)-(195,230),,b 

GOSUB drawGrid 

lastT = 0 

iPass = 0 

fFlag = 0 

done = 0 

solve = 0 

shots = 0 

mCount = 0 

puzzle = 1 

guards = 4 

GOSUB activateWindow 

ERASE grid 

DIM grid(2,9,9) 

GOSUB setGame 
WINDOW 1 
WINDOW OUTPUT 1 
RETURN 

drawGrid: 

FOR j = 70 TO 190 STEP 20 
CALL MOVETO(15,j) 

CALL LINETO(215, j) 

CALL MOVETO(j-15,30) 

CALL LINETO(j-15, 230) 

NEXT 

PUT (15,30),guard 
PUT (198,30),guard 
PUT (15,214),guard 
PUT (198,214),guard 
RETURN 

setGame: 

ERASE grid 
DIM grid (2,9,9) 

RANDOMIZE TIMER 
IF puzzle = 1 THEN setPuzzle 
setRandom: 

FOR j = 1 TO guards 

q = INT (RND*8) + 1 
r = INT(RND*8) + 1 

IF grid(1,q,r) = 0 THEN LET grid(l,q,r) = 1 ELSE LET j = • 

j - 1 


72 







NEXT 
RETURN 
setPuzzle: 

SETCURSOR(VARPTR(watch(0) ) > 
RESTORE 30 
j = INT(RND*60) + 1 
IF j = lastNo THEN setPuzzle 
lastNo = j 
FOR x = 1 TO lastNo 
FOR y=l TO 8 
READ q 

NEXT 

NEXT 

FOR j - 1 TO 4 
READ q 
READ r 

grid(l,q,r) = 1 

NEXT 

RESTORE 20 
RETURN 

FirstShot: 

MENU 5,1,1 
MENU 5,2,1 
MENU 3,0,0 
MENU 4,0,0 
fFlag = 1 
RETURN 

clearWindow: 

IF dFlag = 0 THEN clearTwo 
dFlag = 0 
WINDOW CLOSE 3 
clearTwo: 

WINDOW 2 
WINDOW OUTPUT 2 
GOSUB chicagoFont 
CLS 

RETURN 
shotOut: 

GOSUB clearWindow 
BEEP 

CALL MOVETO (65,20) 

PRINT "Munizioni terminate!!!" 



m 

= Guardia 


» 

= Colpo riuscito 


È 

|n[. 

= Colpo riflesso 


(ni 

V 

16 differenti 
= segnalini indicano 
i colpi a vuoto 


*i 

Segnalini per i colpi 
= a vuoto usati 


41 

nella griglia test 

Figura 3. 1 segnalini per i colpi. 


(Continua) 


Tutto quello che dovete fare è pun¬ 
tare il quadrato da cui volete sparare 
il raggio laser e fare click su di esso. 
Macintosh determinerà cosa accade 
al raggio, segnando il punto di in- 


INFORMATICA BIELLA - ZANOTTO & BERNUZZO Srl 



Apple Center 


(g©gp làlaa 



IMìilag EsCas 


(g@03OB 

[PoolMìasaa, 


Per Apple II, Ile, Ile : 

Contabilità Generale Prodos (Hard Disk, 3 m 1/2) 
Contabilità Generale Dos ( 5" ) 

Contabilità Forfettaria ( Mono/Multiaziendale ) 

Parcellazione Studi Legali 

Gestior? Parrocchie ( anche MS/DOS ) 

Gestione Alberghi 


IP&33SÌ3&S [Mq wró tevifl 


INFORMATICA BIELLA ZANOTTO & BERNUZZO Sii 
P.za S. Paolo 1 - 13051 BIELLA 
Tel. 015 - 24181 / 29875 



































































MONFALCONE (GO) 

Via S. Giacomo 30 - Tel. (0481) 44260 


QUOTAZIONI SPECIALI 
NOVEMBRE - DICEMBRE 


Tutte le schede e periferiche per Apple! e 
quando diciamo TUTTE significa che 
disponiamo anche di quelle che non si trovano 
sul mercato italiano! 

Qualche esempio: 

MODEM 300-600-1200 BAUD full 
duplex con VIDEOTEL per collegarsi a 
tutte le banche dati (pagine gialle elettroniche 
comprese). Lire 300.000 

SPECIALE PER MUSICISTI: 

S&H scheda di campionamento 
vocale e sonoro per la sintesi di qualsiasi 
suono registrato con un microfono, completo 
di batteria elettronica programmabile. 

Lire 350.000 

BETA SYNTAURI sistema musicale 
POLIFONICO completo di tastiera 
professionale a 5 ottave, 2 pedali di 
espressione, 2 maxischede di sintesi, 
REGISTRATORE DIGITALE A 16 PISTE 
incorporato derivato da Alpha Syntauri®. 

Lire 1.450.000 

SPECIALE PER GRAFICI , 
ARCHITETTI, INGEGNERI: 

C.A..D. sistema grafico 

professionale per il disegno e la 
progettazione assistita dal calcolatore, 
composto da scheda 128 K RAM; joystick 
professionale, software applicativo e manuale 
in italiano. Derivato da ROBO 1500®. 

Lire 980.000 

Penna grafica per disegnare direttamente 
su schermo video qualsiasi tipo di grafica, 
ottima per COMPUTER ART. Completa di 
software. Derivata da Gibson Light Pen®. 

Lire 180.000 

Tavoletta grafica formato B4 per 
digitalizzare qualsiasi disegno o schema 
elettrico, oppure per disegno a mano libera. 
Completa di software e manuale italiano. 

Lire 250.000 

Joystick speciali per Apple 11+ con 2 trimmer 
e 2 pulsanti. Lire 43.000 

Driver Slim trazione diretta (i più affidabili)k 
per Apple + e Ile). Lire 390.000 

Mouse per Apple 11+ e Ile completo di 
software grafico. Lire 145.000 

FANTASTICO! Dischi per Apple 5" 
utilizzabili sulle due facce 5 anni di 
garanzia mod. NASHUA MD1. Lire 3.100 

Foradischi utilissimo accessorio per 
sfruttare la seconda faccia del dischetto. 

Lire 12.900 

PREZZI IVA COMPRESA 

Inoltre: Schede di espansione di qualsiasi tipo, 
Centronics, Seriali RS 232, CP/M, 
Input/output, orologio, colore, 80 colonne ecc 

RICHIEDETECI IL NOSTRO 
CATALOGO GRATUITO 

CON I PREZZI PROMOZIONALI 

Attenzione! Tutti i nostri prodotti 
sono garantiti con il sistema 
della sostituzione immediata in 
caso di guasto. 

Per qualsiasi informazione tecnica siamo a 
vostra disposizione al numero telefonico 

(0481) 44260 


Merce pronta consegna. 
Accettiamo ordini telefonici 
allo (0481) 44260. 
Spedizione gratuita per importi superiori 
a L. 90.000. Imballo gratuito. 


PRINT 

GOSUB monacoFont 

PRINT " Agiti incredulo il tuo Laser EdiTron 512-R." 

PRINT " 'Cielo! Me lo avevano garantito almeno per" 

PRINT " 3.000 colpi! Disgraziati!', imprechi sconvolto." 

PRINT:PRINT " Credo, a questo punto, tu possa scrivere" 
PRINT " alla EdiTron e chiedere un rimborso... Ma prima" 
PRINT " che tu riesca a trovare la penna, 10.000 Radion" 

PRINT " ringhianti si lanciano su di te e ti riducono in" 

PRINT " almeno 3.000 brandelli." 

PRINT:PRINT " Peccato, avevi aVche la garanzia in tasca.." 

MENU 5,0,0 

MENU 2,0,0 

GOSUB showSolution 

RETURN 

showSolution: 

IF windowID = 2 AND iPass = 1 THEN GOSUB clearToken 
IF windowID = 2 THEN windowID = l:GOSUB drawLines 
WINDOW 1 
WINDOW OUTPUT 1 
FOR q = 1 TO 8 

FOR r = 1 TO 8 

IF grid (1,q,r) = 1 THEN LET l=17+(q * 20):T=33+(r * 20): 
PUT ( 1,T),guard,PSET 
NEXT 

NEXT 

MENU 2,0,0 
MENU 5,0,0 
done = 1 
RETURN ma in 


guessSolution: 

MENU 5,3,1 
MENU 5,1,0 
solve = 1 
dFlag = 1 

WINDOW 3,, (260, 28)-(501,90),2 
BEEP 

GOSUB monacoFont 

PRINT " Wow! Bravo il nostro Eroe Galattico: dammi" 

PRINT " la tua soluzione! Ricorda che ora puoi guardare" 
PRINT " la Griglia Test, ma non puoi più usarla!" 

PRINT " La Forza sia con te..."; 

MENU 2,0,0 
WINDOW 1 
RETURN 


scoreGame: 

MENU 5,3,0 
MENU 5,1,0 
found = 0 
score = 0 
FOR x « 1 TO 8 

FOR y = 1 TO 8 

found = found + ABS(grid(0,x,y)+grid(1,x,y)=2) 

NEXT 

NEXT 

score = (25*guards) - (40*(guards-found)) - ((2*shots)+(2*mC 
ount)) 

IF score =< 0 THEN score = 10 
IF score => 100 THEN score = 100 
GOSUB clearWindow 


BEEP 

CALL MOVETO (63,18) :PRINT " •• PUNTI ••":PRINT 
PRINT " C'erano";guards;" guardie. Ne hai" 

PRINT " trovate";found;" sparando";shots;" colpi." 

PRINT 

PRINT:PRINT " Il tuo punteggio è ";:PRINT USING "###";score 
PRINT 

GOSUB monacoFont 
IF score > 85 THEN goodStuff 
IF score > 60 THEN niceStuff 
IF score > 30 THEN niceTry 
IF score > 0 THEN condolences 
goodStuff: 

PRINT " Congratulationi Tigre!!!" 

PRINT " Sua maestà l'Imperatore Galattico ti" 

PRINT " ha appena inviato una promozione, poi" 

PRINT " ti ha risbattuto nel labirinto di Radion." 

RETURN 
niceStuff: 

PRINT " Quanto basta per salvare la pelle. Grazie" 

PRINT " ai tuoi sforzi verrai servito in tavola con" 

PRINT " un contorno appetitoso, ma leggero." 

RETURN 
niceTry: 

PRINT " Appena torni alla luce ti sorprendi" 

PRINT " constatando quanto tempo hai impiegato." 

PRINT " Prima che tu riesca a capire che ora" 

PRINT " sei libero, 6 Radion gorgoglianti affilano" 


•marchi registrati 
























PRINT " 
RETURN 
condolences: 
PRINT " 
PRINT " 
PRINT " 
PRINT " 
RETURN 


le loro asce sulla tua testa..." 


Mmm.. sei andato vicino, topastro. Ma essere" 
vicini ha importanza solo in una love story..." 
Dalla tua preziosa pelle fanno 30 portafogli" 
2 borsette e un paio di stivali." 


10 ' ** Dati per orologio, raggi, riflessi, guardie, dentro, fuori 

DATA 2016,2016,2016,2016,2064,4232,4232,4236 

DATA 5004,4104,4104,2064,2016,2016,2016,2016 

DATA 2016,2016,2016,2016,4080,8184,8184,8184 

DATA 8184,8184,8184,4080,2016,2016,2016,2016,8,8 

DATA 16, 16,256, 29596,24844,22484,2336, 5456, 21396 

DATA -2,21396,5456 ,2336,22484,24844,29596,256,0 

DATA 16,16,-1,-4097,-12289,-32761,3,-32767,-12319 

DATA -4111,-4111,-12319 ,-32767,3,-32761,-12289,-4097,-1 

DATA 16,16,9218,29692,8432,8336,8440,32516,32614 

DATA 9014,8964,8548 ,9012,8964,8964,9212,8972,9998 

DATA 16,16,0,0,8319,12373,-1921,-939,-385 

DATA -171,-385,-939,-1921,12373 ,8319,0,0,0 

DATA 16,16,0,0,1151,3157,8063,16213,32639 

DATA -171,32639,16213,8063,3157 ,1151,0,0,0 

20 ' ** Dati per le pedine ** 

DATA 16,16,0,8184,8196,16482,16514,17954,20338 

DATA 24570,24570,24570 ,24570,20466,18402,8196,8184,0 

DATA 16,16,0,32736,-32752,-16432,-24496,-24496,-24496 

DATA -24496,-16424 ,-32748,-32302,-32748,-14,16421,32743,0 

DATA 16,16,0,1022,3586,4102,10238,32094,27310 

DATA 24030,31726,24030,27311,32095,4095,1023,511,0 

DATA 16,16,-1,-31807,-30751,-28685,-9253,-21547,-4105 

DATA -20491 ,-20491,-20491,-20491,-20491,-20491,-20491,-20491,-20491 

DATA 16,16,1024,1536,1792,1920,1984,2016,2032 

DATA 2040,2044,2046,2047 ,0,-1,32767,16382,8188 

DATA 16, 16,-3121,-3121,-1,-1,-1,32766, 0 

DATA 8184,8184,8184,8184,8184 ,8184,0,32766,-1 

DATA 16,16,0,960,1824,3984,8136,16356,32754 

DATA 32761,16370,8164,4040 ,1936,800,448,0,0 

DATA 16,16,0,15420,32382,-1,-1,-1,-1 

DATA 32766,16380,8184,4080,2016,960 ,384,0,0 

DATA 16,16,26752,-3841,-3925,26755,-27393,2731,1527 

DATA 1691,799,610 ,-7567,25009,8069,3977,4038,508 

DATA 16,16,7280,16476,15288,3808,4064,1984,-2 

DATA -2,-2,8176,8176,8176 ,8176,15480,30780,12312 

DATA 16,16,0,0,0,2,-32762,-2,-1 

DATA 191,159,127,31,31,31,14,0,0 

DATA 16,16,7196,5596,7636,5460,5460,13878,17377 

DATA -31775,-24781 ,-7881,-5837,-6863,-7681,-31,-65,32542 

DATA 16,16,0,992,2032,2032,2032,15342,32223 

DATA 32767,32767,32767 ,32223,15342,2032,4088,4088,0 

DATA 16,16,-1,-24839,-16387,-899,-1281,-1985,-1985 

DATA -641,-897,-961 ,-8161,-16353,-32737,-32739,-32743,-1 

DATA 16, 16, 4 064, 16368, 327 60,-4,-8164,-260, -900 

DATA -3812,29628,-16644 ,-9095,-8205,-4121,-2097,-2017,-1 

DATA 16,16,1344,2744,5460,10242,20485,8194,24573 

DATA 23213,9362,22605 ,8386,10250,5460,2728,1360,128 

30 '** Dati per i problemi 
DATA 1,2,8,1,1,8,8,6,5,3,6,5,8,6,7, 3 
DATA 7,2,7,3 6,7,6, 8,1,2,3,3,3,5,1,1 
DATA 1,1,1,2,2,2,2,1,1,2,1,4,1,7,4,4 
DATA 3,4,1,8,2,7,1,3,1,4,6,2,6, 5,8,7 
DATA 4,2,6, 2,5,7,7,7,7,3,2,7, 6,7,7,7 
DATA 1,4,2,3,3,3,5,5,5,5,6,5,7,4,7,6 
DATA 2,6, 5,4,6,7,7,3,3,4,5,4,4,6, 4,8 
DATA 7,2,2,4,5,5,4,8,5,1,6,6,6,7,6,8 
DATA 3,4,3,3,5,4,6,4,8,1,3,3,4,5,7,6 
DATA 8,2,7,3,7,4,6,7,6,1,3,7,2,3,7,7 
DATA 2,3,4,6,5,7,7,5,3,3,3,6,6,3,7,7 
DATA 1,1,1,2,8,8,7,8,1,7,3,7,5,7,7,7 
DATA 2,3,6,2,3,7,7,6,3,4,5,8,6,6,8,8 
DATA 3,3,6,2,7,4,3,7,1,5,4,1,5,8,8,4 
DATA 1,4,1,6,4,4,4,5,1,3,2,4,2,6,1,8 
DATA 1,1,6,6,6,7,7,6,5,1,6,2,7,3,8,4 
DATA 3,3,2,7,4,5,6,5,1,1,2,3,3,5,8,1 
DATA 1,5,7,2,5,4,7,4,4,4,4,6,5,4,5,6 
DATA 2,8,6,8,7,8,8,8,8,1,2,2,8,6, 2,8 
DATA 1,8,2,8,1,6,1,8,1,4,5,6, 7,6,4,5 
DATA 1,7,2,7,3,8,4,6,7,7,6,7,6,5,7,5 
DATA 4,8,5,8,6,8,8,1,8,1,2,2,1,8,8,7 
DATA 3,1,8,2,1,7,4,7,4,8,5,7,7,5,8,4 
DATA 8,1,8,2,8,6,3,3,4,3,5,3,6,3,8,6 
DATA 8,1,8,8,1,1,1,8,8,1,8,2,1,8,1,7 
DATA 1,7,1,8,2,8,1,1,4,4,5,4,6,4,4,6 
DATA 3,8,4,8,5,8,5,7,2,1,1,3,3,2,4,1 
DATA 6,8,5,8,5,7,6,7,1,3,3,3,3,5,1,5 
DATA 4,2,6,2,5,7,7,7,1,2,1,3,1,5,1,7 
DATA 1,1,2,2,3,3,3,1,5,2,6,1,7,8,1,2 
DATA 8,8,8,7,8,6,3,6,1,3,4,1,4,8,1,6 


gresso e quello di uscita con le pedi¬ 
ne corrispondenti. Potete usare la gri¬ 
glia di Test per verificare l’esattezza 
delle vostre deduzioni. 

Posizionate una guardia nella Gri¬ 
glia Test facendo click sulla casella 
in cui volete farla apparire. Se fate 
click su una casella occupata la guar¬ 
dia verrà rimossa. Sparate un raggio 
alla guardia con un click sulla casel¬ 
la di ingresso che desiderate. A diffe¬ 
renza della griglia Radion, però, so¬ 
lo un colpo alla volta verrà mostra¬ 
to. Appena lanciate un secondo rag¬ 
gio i marcatori precedenti vengono 
cancellati (troppo aiuto, il gioco di¬ 
venta insipido). 

Quando credete di aver dedotto la 
posizione delle guardie scegliete Ten- 
tativo nel menù Soluzione. A que¬ 
sto punto potete posizionare le guar¬ 
die nella griglia Radion, come face¬ 
vate nella griglia di test. Quando le 
avete sistemate tutte scegliete Punti 
nel menù Soluzione e leggete la vo¬ 
stra valutazione. 

Alcuni spunti per 
personalizzare il gioco 

Uno schema del programma è rias¬ 
sunto nella tavola 1. 

Lo spazio non permette l’inclusio¬ 
ne di uno scenario per due giocatori. 
Per aggiungerlo dovete: 

1. Creare un nuovo menù per la sele¬ 
zione. 

2. Disegnare un'interfaccia per con¬ 
sentire il posizionamento delle guar¬ 
die nella griglia (la griglia test po¬ 
trebbe essere usata a questo fine, poi¬ 
ché è creata proprio per controllare 
le guardie) e infine aggiungere delle 
istruzioni visualizzabili a comando. 

La routine di controllo è stata idea¬ 
ta con un occhio di riguardo più per 
la leggibilità che per la velocità e lo 
stile algoritmico. Come è attualmen¬ 
te svolge il suo lavoro con discreta 
velocità, ma potrebbe essere resa piu 
veloce e compatta. 

Siete ovviamente liberi di aggiun¬ 
gere nuovi problemi, usando cinque 
guardie. Più che liberi: siete incorag¬ 
giati a farlo, e potete persino ridise¬ 
gnare le pedine. 

- x 

Questo programma è disponibile 
su dischetto. L’elenco, I prezzi 
e le modalità d’ordine di questo 
e degli altri dischetti disponibili 
sono riportati nella rubrica 
Disk Service. 

> J 


® Nibbio e Applicando 


75 








UTILITY 



Creare e modificare i file di testo diventa decisamente più facile 
con questo programma in Applesoft, che consente 
l'editing orientato sulla linea, una funzione di ricerca e l'accesso 
diretto alla maggior parte dei comandi del dischetto. 


Gestione diretta 
per i file di testo 


Accorgersi di aver commesso un 
errore di ortografia in una linea quan¬ 
do ormai si è in ambiente di pro¬ 
grammazione significa di norma do¬ 
ver uscire dalla programmazione e ri¬ 
caricare l'Apple Writer per corregge¬ 
re il file di testo. Niente di catastro¬ 
fico, indubbiamente, ma senz'altro u- 
na piccola scocciatura che sarebbe 
bello poter evitare... 

Text File Utility, in Applesoft, 
rende quanto mai semplice scrivere e 
modificare i file di testo sequenziali. 
Gira su qualsiasi Apple II Plus, Ile 
o Ile, è interamente compatibile con 
il ProDOS e supporta la stampante 
Epson MX-80 nello slot 1. 

Utilizzo, stampa 
e salvataggio 

I comandi usati dal programma so¬ 
no per la maggior parte identici ai 
corrispondenti comandi del DOS (o 
ProDOS) e dell'Applesoft: CATA- 
LOG, DELETE, HOME, LIST, LO¬ 
OK, NEW, RENAME e UNLOCK. 
Per leggere un file con il Text File 
Utility a scopo di editing usate il co¬ 
mando LO AD nomefile. Per scrivere 
il file di testo sul dischetto, usate 
S AVE nomefile. Se dovete specifica¬ 
re con i comandi LO AD o S AVE un 
numero di drive, esso dev'essere l’ul¬ 
tima parte del comando. Inoltre è ne¬ 
cessario introdurre uno spazio fra il 
comando e il nome del file. Ecco un 
esempio della giusta sintassi: 


S AVE LISTERJD1 <RETURN> 


Ricordate che in ProDOS non ci 
possono essere spaziature nel nome 
del file e che il nome non può supe¬ 
rare i 15 caratteri di lunghezza. 

Il comando SEARCH permette, 
come implica il suo nome, di esplo¬ 
rare il file alla ricerca di qualsiasi ca¬ 
rattere o stringa di caratteri. Suppo¬ 
niamo per esempio che abbiate intro- 


Listato 1. Text file utility 


dotto in qualche punto del vostro fi¬ 
le di lavoro questa linea: 


120 PRINT "STO CARICANDO 
IL PROGRAMMA NIME, 
ATTENDI PREGO.” 


Per trovare la linea con l'errore di 
ortografia introducete il comando 


DOS 3.3 
ProDOS 

Apple Ile 
Apple Ile 


ì 

2 

3 

4 

5 

6 
7 

70 


80 

90 

100 

110 

120 


130 


140 

150 

160 

170 


TEXT FILE UTILITY 
DI RUDY A. GUY 
COPYRIGHT (C) 1986 
BY APPLICANDO & 
MICROSPARC, INC 


Apple Ile 


Apple Ile 


REM 
REM 
REM 
REM 
REM 
REM 
REM 

POKE 768,104: POKE 769,168: POKE 770,104: POKE 771,166: POKE 
72,223: POKE 773,154: POKE 774,72: POKE 775,152: POKE 776,72: 
POKE 777,96 
ONERR GOTO 1450 
GOSUB 1390 

REM -->PROGRAMMA PRINCIPALE<— 

TEXT : HOME 

VTAB 1: INVERSE : FOR I = 1 TO 80 : PRINT 
A$ = "TEXT FILE UTILITY * DI RUDY A. GUY": 

C) 1986 BY APPLICANDO & MICROSPARC": GOSUB 1380: NORMAL : POK 

E 34,2 

VTAB 22: PRINT "CATALOG DELETE EDIT HOME LIST LOAD LOCK NEW 

,NUM FINE RENAME SEARCH UNLOCK CTRL - Z (RETURN) STAMP 

A";: POKE 35,21: HOME 

GOSUB 1280: ONERR GOTO 1450 

REM —>ANALIZZA LINEA<— 

IF LEN (LI$) = 0 THEN 140 

IF ASC ( LEFT$ (LI$,1)) > 47 AND ASC ( LEFT$ (LI$,1)) < 58 

THEN GOSUB 1120: GOTO 140 


NEXT : VTAB 1: 
GOSUB 1380:A$ = "( 


180 

IF 

LEFTS 

(LIS,4) 

= 

"LOAD" 

THEN 

330 



190 

IF 

LEFT$ 

(LIS,4) 

= 

"SAVE" 

THEN 

600 



200 

IF 

LEFT$ 

(LIS,4) 

= 

"HOME" 

THEN 

HOME 

: GOTO 140 


210 

IF 

LEFTS 

(LIS,4) 

= 

"LIST" 

THEN 

GOSUB 

790: GOTO 

140 

220 

IF 

LEFTS 

(LIS,3) 

= 

"NEW" 

THEN 

910 



230 

IF 

LEFTS 

(LIS,4) 

= 

"FINE" 

THEN 

TEXT 

: HOME : END 

240 

IF 

LEFTS 

(LIS,3) 

= 

"CAT" 

THEN 

GOSUB 

930: GOTO 

140 

250 

IF 

LEFTS 

(LIS,3) 

= 

"DEL" 

THEN 

GOSUB 

930: GOTO 

140 

260 

IF 

LEFTS 

(LIS,3) 

= 

"REN" 

THEN 

GOSUB 

930: GOTO 

140 

270 

IF 

LEFTS 

(LIS,4) 

= 

"UNLO" 

THEN 

GOSUB 

930: GOTO 

140 

280 

IF 

LEFTS 

(LIS,4) 

= 

"LOCK" 

THEN 

GOSUB 

930: GOTO 

140 

290 

IF 

LEFTS 

(LIS,4) 

= 

"SEAR" 

THEN 

GOSUB 

950: GOTO 

140 


76 



















SEARCH e premete il tasto <RE- 
TURN>. Sarete invitati a introdurre 
la chiave di ricerca. A questo punto 
introducete NIME e premete <RE- 
TURN>. Quando viene trovata una 
corrispondenza la linea viene visua¬ 
lizzata alla sommità dello schermo e 
siete invitati a dire se volete modifi¬ 
care, proseguire la ricerca o interrom¬ 
pere l'operazione. 

Se scegliete la modifica della linea 
il cursore si sposta all’inizio della li¬ 
nea. Le frecce sinistra e destra vi per¬ 
mettono di spostarvi su differenti 
parti della linea da modificare. Pre¬ 
mendo <CTRL>D si elimina il ca¬ 
rattere sotto il cursore, mentre pre¬ 
mendo qualsiasi altro tasto si inseri¬ 
sce il carattere appropriato alla sini¬ 
stra del cursore. Si può premere in 
qualsiasi momento <RETURN> per 
completare il ciclo di editing, e non 
c’è bisogno di spostare il cursore a fi¬ 
ne linea. 

Se sapete che linea volete modifi¬ 
care potete fare a meno del comando 
SEARCH e usare al suo posto il co¬ 
mando EDIT. La sintassi giusta per 
EDIT è questa: 


EDIT 120 <RETURN> 


Quando usate il comando EDIT fa¬ 
te attenzione che rimanga uno spa¬ 
zio fra la parola EDIT e il numero 
della linea che volete modificare. Se 
viene introdotto un numero di linea 
che non esiste riceverete il messag¬ 
gio d’errore ”+++NUMERO LINEA 
INESISTENTE” (numero di linea 
non trovato). Se decidete di non mo¬ 
dificare una linea dopo che è stata vi¬ 
sualizzata vi basta premere <RE- 
TURN> e la linea rimarrà immu¬ 
tata. 

Introducendo <CTRL>Z <RE- 
TURN> si riversa il file di lavoro 
corrente sulla stampante. Se la vo¬ 
stra configurazione è diversa dall’E- 
pson MX-80 nello slot 1, può darsi 
che dobbiate modificare la linea 
1410 per l’adattamento alla vostra 
specifica stampante. 

Quando si tratta di salvare un file, 
potete scegliere se salvarlo con o 
senza numero (il default è senza nu¬ 
mero). Questa caratteristica può sem¬ 
brare poco importante a prima vista, 
ma diventando più pratici con l’uti¬ 
lizzo di questo programma capirete 
perché è stata inserita. Dato che la 
funzione principale del Text File Uti¬ 
lity è la scrittura di file sequenziali 
di dati o file eseguibili con EXEC, i 


numeri di linea che vengono intro¬ 
dotti durante la scrittura di un file 
vengono tolti mentre il file viene 
salvato nel modo di default, cioè sen¬ 
za numero. 

Tuttavia se volete scrivere un pro¬ 
gramma con l’aiuto di Text File Uti¬ 
lity dovrete forzarlo a salvare il file 
con i numeri di linea intatti. Questo 
si ottiene usando il suffisso 
" JSnjM” con il comando S AVE, co¬ 
me segue: 


SAVE CAPTURE,NUM,D2 <RE- 
TURN> 


La creazione 
di un file 

Creare un file è molto simile a 
scrivere un programma in Apple¬ 
soft. Se viene introdotto un numero 
di linea il codice che viene dopo è 
immagazzinato come parte del file di 
testo. Se non viene introdotto alcun 
numero di linea il comando viene e- 
seguito immediatamente. Il breve e- 
sempio che segue produce un file 
che, quando viene eseguito con E- 
XEC, lista sulla stampante il pro¬ 
gramma in memoria. Quando si fa 
girare il Text File Utility il carattere 
del prompt passa dalla parentesi qua¬ 
dra destra (]) al simbolo di omissio¬ 
ne ( A ). Introducete queste linee di pro¬ 
gramma, facendo attenzione che ci 
sia un spazio dopo ogni numero di 
linea: 


10 PRINT CHR$(4)”PR#1" 
20 PRINT CHR$(9)"80N" 
30 PRINT CHR$(4)”PR#0” 


Adesso battete LIST e comparirà 
quanto segue: 


00010 PRINT CHR$(4)”PR#1” 
00020 PRINT CHR$(9)”80N” 
00030 PRINT CHR$(4)"PR#0" 


Come potete vedere è stata omessa 
dal programma una linea molto im¬ 
portante: il comando LIST. Vi baste¬ 
rà introdurre la linea che segue e sare¬ 
te pronti a- salvare il file sul di¬ 
schetto: 


25 LIST 


Se avete qualche dubbio circa il 
punto in cui andrà a finire questa li¬ 
nea battete nuovamente LIST e 
comparirà fra le linee 00020 e 
00030 la linea 00025. 


300 

310 

320 

330 

340 

350 

360 

370 

380 

390 

400 

410 

420 

430 

440 

450 

460 

470 

480 

490 

500 


510 

520 

530 

540 

550 

560 


( 4)"OPEN "TE$ 
(4)"READ "TES 


630 

640 


IF LEFT$ (LI$,4) - "EDIT" THEN GOSUB 1590: GOTO 140 
IF LEFT$ (LI$,1) = CHR$ (26) THEN GOSUB 1400: GOTO 140 
PRINT CHR$ (7)"+++ COMMAND ERROR": GOTO 140 
REM —>CARICA IL FILE<— 

FOR I - 1 TO LI:LI$(I) = "": NEXT :LI - 1 

IF LEN (LI$) = 4 THEN 320 

LI$ = RIGHTS (LI$, LEN (LI$) - 4) 

FOR I = 1 TO LEN (LI$): IF MIDS (LI$,I,1) = CHR$ (44) THEN 
390 

NEXT :TE$ = LI$: GOTO 400 

TES = LEFT$ (LI$/1 - 1): ONERR GOTO 1460 
PRINT CHR$ (4)"RENAME "TES","LIS 
POKE 216,0 
ONERR GOTO 500 
PRINT CHR$ 

PRINT CHR$ 

LI$ = "' 

GET A$: IF A$ = CHRS (13) THEN 480 

LI$ = LI$ + A$: GOTO 460 

IF LI$ = "" THEN 460 

LI$(LI) = LI$:LI = LI + 1: GOTO 450 

PRINT : PRINT CHR$ (4)"CLOSE": LI * LI - 1 : POKE 216,0: HOME 
: IF NOT LI THEN PRINT "+++ NESSUN FILE IN MEMORIA": GOTO 1 
40 

FOR I = 1 TO LI :AD$ = STRS (I * 10) 

IF LEN (AD$) < 5 THEN AD$ = "0" + AD$: GOTO 520 
LI$ (I) = AD$ + " " + LI$(I) 

PRINT LI$ (I) : NEXT 

IF ASC ( MID$ (LIS(LI),7,1) ) > 57 THEN 580 

PRINT : INPUT "CANCELLI IL PRIMO SET DI NUMERI ?";YN$:: PRINT 
: IF LEFT$ (YN$,1) = "N" THEN 580 

= 1 TO LI :LI$(I) = RIGHTS (LI$(I), LEN (LI$(I)) - 6): 
PRINT LI$ (I) : NEXT 
ONERR GOTO 1450 
GOTO 140 

REM —>SALVA IL FILE<— 

IF LEN (LI$) = 4 THEN 320 

IF MID$ (LI$, LEN (LI$) - 1,1) = "D" THEN T$ = RIGHTS (LIS, 

3):TF = 1 :LIS = LEFTS (LIS, LEN (LIS) - 3) 

IF RIGHTS (LIS,4) = ",NUM" THEN FL = 1:LI$ = LEFTS (LIS, LE 
N (LIS) - 4) 

LIS = RIGHTS (LIS, LEN (LIS) - 4) . . 

(Continua) 


570 FOR I 


580 

590 

600 

610 

620 


77 

















Tavola 1. Le subroutine di Text file utility 


70-130 Inizializza e visualizza intestazione e comandi. 

140-320 Salta alla routine di input da tastiera e analizza la linea. Se c'è 
un numero nella prima posizione della stringa Ll$, salta 
a COSTRUISCE FILE. Se non c'è controlla se ci sia un comando 
valido di esecuzione immediata e salta alla subroutine appropriata. 

330-540 Carica in memoria un file di testo. 

550-590 Controlla se il file caricato sia stato salvato in formato numerato 
o non numerato. 

600-780 Se è numerato chiede se si vuole eliminare il primo set di numeri. 

790-890 Lista sullo schermo il file di lavoro. 


900-910 Cancella il file dalla memoria. 

920-930 Esegue un comando DOS. 

940-1110 Effettua la ricerca nella stringa. 
1120-1270 Costruisce il file di lavoro. Colloca 

la nuova linea in sequenza numerica. 
1280-1360 Legge il buffer di tastiera. 

1370-1390 Routine di centratura del testo. 
1400-1440 Lista il file di lavoro sulla stampante. 
1450-1580 Routine di gestione dell'errore. 
1590-1850 Routine di editing della linea. 


A differenza dell'Applesoft, Text 
File Utility richiede uno spazio do¬ 
po ogni numero di linea. Se lo spa¬ 
zio viene omesso riceverete un mes¬ 
saggio di errore d'introduzione 
"+++ENTRY ERROR'”'. Potete u- 
sare un punto interrogativo invece di 
un'istruzione PRINT se il file che 
state creando sarà usato solo in am¬ 
biente Applesoft. Un'altra differenza 
fra l'ambiente del Text File Utility e 
l'Applesoft è il modo in cui sono 
implementate le frecce sinistra e de¬ 
stra. Se notate un errore in una linea 
e spostate il cursore a ritroso fino al¬ 
l'errore i caratteri sotto il cursore ver¬ 
ranno cancellati e dovranno essere ri¬ 
battuti. E' da notare però che le fun¬ 
zioni di editing ESC non sono sup¬ 
portate da questo programma. 

Per salvare Ti file appena creato 
battete: 


S AVE LISTER <RETURN> 


Poi battete CATALOG e vedrete 
un file di testo di due settori denomi¬ 
nato LISTER. Per assicurarvi che 
funzioni a dovere battete FINE <RE- 
TURN>. Mettete la stampante in li¬ 
nea e battete EXEC LISTER <RE- 
TURN>. Dovreste ricevere un lista¬ 
to completo di questo programma. 

In caso negativo fate girare nuova¬ 
mente Text File Utility e fate 
LOAD LISTER. Controllate il vo¬ 
stro file confrontandolo con il lista¬ 
to visibile sopra. 

Il file che avete appena creato è uti¬ 
lizzato solamente come file EXEC. 
Invece l’esempio della figura 1 è 
un po’ più complesso. Quando se ne 
fa l'EXEC, aggiunge sette linee di i- 
struzioni a un programma esistente, 
fa girare il programma cominciando 
dalla linea 62000 e poi elimina le li¬ 
nee che ha appena aggiunto. Avete a 
disposizione due modi per introdurre 


650 IF LI < 1 THEN PRINT CHR$ (7)"+++ NESSUN FILE DI LAVORO": G 
OTO 140 

660 FOR I = 1 TO LEN (LI$): IF MID$ (LIS,1,1) = CHR$ (44) THEN 
680 

670 NEXT 

680 TE$ = LEFTS (LI$,I - 1) 

690 IF TF THEN TE$ = TE$ + T$ 

700 PRINT CHR$ (4)"OPEN "TE$: PRINT CHR$ (4)"CLOSE" 

710 PRINT CHR$ (4)"DELETE"TE$ 

720 PRINT CHR$ (4)"OPEN "TE$ 

730 IF TF THEN TF = 0:TE$ = LEFTS (TES, LEN (TE$) - 3) 

740 PRINT CHR$ (4)"WRITE "TE$ 

750 FOR I = 1 TO LI: IF NOT FL THEN PRINT RIGHTS (LI$(I), LEN 
(LI$(I)) - 6): GOTO 770 
760 PRINT LI$(I) 

770 NEXT : PRINT CHR$ (4)"CLOSE":FL = 0 
780 GOTO 140 

790 REM _>LISTA IL FILE<—■ 

800 IF LI < 1 THEN PRINT CHR$ (7)"+++ FILE DI LAVORO VUOTO": RE 
TURN 

810 IF LI$ = "LIST" THEN FOR I = 1 TO LI : PRINT LIS(I): NEXT : R 
E TURN 

820 TES = RIGHTS (LI$, LEN (LI$) - 5) 

830 FOR I = 1 TO LEN (TE$): IF MID$ (TES,1,1) = CHRS (44) THEN 

B = VAL ( LEFT$ (TES,I - 1)):EN = VAL ( RIGHTS (TES, LEN ( 

TE$) - I)): GOTO 850 
840 NEXT :EN = VAL (TE$):B = 0 
850 FOR I » 1 TO LI 

860 IF VAL ( LEFTS (LI$(I),5)) > = B AND VAL ( LEFTS (LI$(I),5 

)) < = EN THEN PRINT LI$(I) 

870 IF VAL ( LEFTS (LI$(I),5)) = EN THEN RETURN 

880 NEXT 
890 RETURN 

900 REM —>PULISCE IL FILE<— 

910 CLEAR : GOSUB 1390: GOTO 140 
920 REM —>COMANDO DOS<— 

930 PRINT CHRS (4)LI$ : RETURN 
940 REM —>RICERCA<— 

950 HOME : VTAB 12: PRINT "CHIAVE DI RICERCA ? :";:SE$ = "" 

960 GET A$: IF A$ = CHRS (8) AND LEN (SES) > 1 THEN SES = LEFT 

$ (SES# LEN (SES) - 1): PRINT " "ASAS;: GOTO 960 
970 IF A$ - CHRS (8) AND LEN (SES) = 1 THEN SES - "": PRINT " " 

ASAS;: GOTO 960 

980 IF A$ = CHRS (8) AND LEN (SES) - 0 THEN PRINT " ";A$;: GOT 

O 960 

990 IF A$ = CHRS (21) THEN 960 

1000 PRINT A$; : IF A$ = CHRS (13) THEN 1020 

1010 SES = SES + A$: GOTO 960 

1020 FOR I = 1 TO LI 

1030 FOR J = 1 TO LEN (LI$(I)): IF LEN (SES) > LEN (LIS(I)) TH 
EN 1060 

1040 IF MIDS (LIS(I), J, LEN (SES)) = SES THEN HOME : HTAB 2: PR 
INT LIS(I): GOTO 1080 

1050 NEXT J m 

1060 NEXT I m 

1070 VTAB 12: CALL - 958: RETURN 

1080 VTAB 12: INPUT "(M)ODIFICA (C)ONTINUA O (F)INE ?";OP$:OP$ = 
LEFTS (OP$,1): IF OPS < > "M" AND OPS < > "C" AND OPS < 

> "F" THEN VTAB 12: CALL - 958: GOTO 1080 
1090 IF OPS = "C" THEN VTAB 12: CALL - 958: PRINT "STO CERCANDO 
..." : GOTO 1050 

1100 IF OPS = "F" THEN VTAB 12: CALL - 958: RETURN 

1110 VTAB 12: CALL - 958: HTAB 1: VTAB 3: GOSUB 1660: RETURN 

1120 REM —COSTRUISCE IL FILE<— 

1130 CHS = " ": REM 10 SPAZI 

1140 IF LEN (LIS) < 5 THEN LIS - LIS + CHRS (32): GOTO 1140 
1150 LI = LI + 1 


78 









I 


questo esempio. Il primo metodo 
consiste nell'introdurlo esattamente 
come si presenta nell’esempio 1. Il 
metodo alternativo è l’introduzione 
di queste linee: 


62000 HOME 

62010 PRINT CHR$(4)”OPEN 
CAPTUREFP” 

62020 PRINT CHR$(4)”WRITE 
CAPTUREFP” 

62030 PRINT LIST ,61999 
62040 PRINT CHR$(4)”CLOSE" 
62050 TEXT:HOME 


Quando avete completato l’introdu¬ 
zione del codice salvate il file con: 


SAVE CAPTUREJSUM 
<RETURN> 


Come detto sopra, l'impiego del 
suffisso ”,NUM" dà istruzione di sal¬ 
vare il file con tutti i numeri di li¬ 
nea intatti. Ciò è desiderabile nel 
nostro caso perché quando si fa l’E- 
XEC di Capture dal Basic le linee 
62000-62050 vengono aggiunte al 
programma che risiede al presente in 
memoria. 


Ora che Capture è stato salvato 
sul dischetto battete: 


LOAD CAPTURE <RETURN> 


Il file che avete appena salvato vie¬ 
ne ricaricato e listato sullo schermo, 
con la comparsa di un ulteriore set 
di numeri davanti ai numeri di linea 
originari. Quando il listato è comple¬ 
to appare sullo schermo il prompt: 


CANCELLI IL PRIMO SET DI 
NUMERI? 


Battete N e premete <RETURN>. 
Adesso introducete queste due linee 
di codice: 


80 RUN 62000 
90 DEL 62000,62050 


Quando avete finito battete: 


SAVE CAPTURE <RETURN> 


Text File Utility salva il file, pri¬ 
vandolo del suo primo set di nume¬ 
ri, di modo che le prime sette linee 
vengono salvate con i prefissi nume¬ 
rici (numeri di linea) mentre le ulti¬ 
me due righe non li hanno. 

Avete ora creato un file che prima 
aggiunge linee a un programma in 
memoria e poi esegue il programma 
partendo dalle linee che ha appena 
aggiunto. 

Se state introducendo un program¬ 
ma in Applesoft e i suoi numeri di 
linea sono più bassi di 62000, un 
semplice comando EXEC CAPTU¬ 
RE trasforma il programma in un fi¬ 
le di testo denominato CAPTURE¬ 
FP. 

Adesso si può caricare il program¬ 
ma in Text File Utility o nella mag¬ 
gior parte dei word processor per far¬ 
ne un facile editing. Inoltre è adesso 
nel formato appropriato per la tra¬ 
smissione via modem. 

Altre applicazioni dei file EXEC 
comprendono la fusione dei program¬ 
mi, il caricamento delle tavole delle 
figure e l'installazione di programmi 
in linguaggio macchina. 

Si può usare questo programma 
per modificare quasi tutti i file di te¬ 
sto sequenziali, compresi molti data¬ 
base. 

Per trarre un file di programma in 
Applesoft da un file di testo dovete 
fare 1EXEC del file di testo, e poi u- 
sare il comando S AVE per salvare il 
programma sul dischetto. 


1160 


1170 

1180 


1190 

1200 


1210 

1220 


1230 

1240 

1250 

1260 

1270 


1280 

1290 

1300 


FOR I = 1 TO 5: IF ASC ( MID$ (LI$,I,1)) > 57 OR ASC ( MID 
$ (LI$,I,1)) = 32 THEN LI$ = "0" + LI$ 

NEXT 

IF MID$ (1*1$, 6,1) < > CHR$ (32) THEN PRINT CHR$ (7)" +++ 
ENTRY ERROR": LI = LI - 1: RETURN 
IF VAL ( LEFT$ (LI$(LI - 1),5)) < VAL ( LEFT$ (LI$,5)) THE 
N LI$(LI) = LI$: RETURN 

FOR I = 1 TO LI: IF VAL ( LEFT$ (LI$(I),5)) > = VAL ( LEF 

T$ (LI$,5)) THEN 1220 
NEXT 

IF RIGHT$ (LI$, 


LEN (LI$) - 5) = 


RIGHT$ (CH$, LEN (LI$) - 
5) AND VAL ( LEFT$ (LI$(I),5)) = VAL ( LEFT$ (LI$,5)) THEN 
FOR J = I TO LI - 2 :LI$(J) = LI$(J + 1): NEXT J:LI = LI - 
2: RETURN 

IF VAL ( LEFT$ (LI$(I),5)) = VAL ( LEFT$ (LI$,5)) THEN LI$ 
(I) = LI$ : LI = LI - 1: RETURN 

FOR I = 1 TO LI: IF VAL ( LEFT$ (LI$,5)) < VAL ( LEFT$ (LI 
$(I),5)) THEN 1260 
NEXT 
J = I 

FOR I = LI TO J STEP - 1:LI$(I) = LI$(I - 1): NEXT :LI$(J) 

= LI$: RETURN 

REM —>LEGGE LA TASTIERA<— 

PRINT ,,ys " ; : LI$ = 

GET A$: IF A$ = CHR$ (8) AND LEN (LI$) > 1 THEN LI$ = LEF 
T$ (LI$, LEN (LI$) - 1): PRINT " "A$A$;: GOTO 1300 


1310 IF A$ - 


1320 

1330 

1340 

1350 

1360 

1370 

1380 

1390 

1400 

1410 

1420 

1430 

1440 

1450 

1460 

1470 

1480 

1490 

1500 

1510 

1520 

1530 

1540 

1550 

1560 

1570 

1580 


LEN (LI$) = 1 THEN LI$ 


PRINT 


CHR$ (8) AND 
"A$A$;: GOTO 1300 
IF A$ = CHR$ (8) AND LEN (LI$) = 0 THEN PRINT " ";A$;: GO 
TO 1300 

IF A$ = CHR$ (21) THEN 1300 

PRINT A$;: IF A$ = CHR$ (13) THEN RETURN 

LI$ = LI$ + A$: GOTO 1300 

RETURN 

REM —>ROUTINE DI CENTRATURA<— 

HTAB 21 - LEN (A$) / 2: PRINT A$: 

DIM LI$(500): RETURN 
REM —>ROUTINE STAMPANTE<— 

PRINT CHR$ (4)"PR#1": PRINT 
FOR I = 1 TO LI: PRINT LI$(I): 

PRINT CHR$ (4)"PR#0" 

RETURN 

REM —>ROUTINE ERRORI<— 

ER = PEEK (222) : REM <— TIPO DI ERRORE 

EL = PEEK (218) + PEEK (219) * 256: REM <—N. LINEA ERR 

ORE 

CALL 768 

IF ER « 255 THEN TEXT : HOME : END 
REM ALTRI ERRORI 


RETURN 


CHR$ (9)"80N" 
NEXT 


IF ER 
0 

IF ER 
IF ER 
IF ER 
IF EL 
TO 140 
IF ER 
IF ER 


6 THEN PRINT CHR$ (7)"+++ FILE NOT FOUND": GOTO 14 

8 THEN PRINT CHR$ (7)"+++ I/O ERROR": GOTO 140 

9 THEN PRINT CHR$ (7)"+++ DISK FULL": GOTO 140 

10 THEN PRINT CHR$ (7)"+++ FILE LOCKED": GOTO 140 
870 THEN PRINT CHR$ (7)"+++ DOS COMMAND ERROR": GO 


53 THEN PRINT CHR$ (7)"+++ ENTRY ERROR": GOTO 140 
16 OR ER = 11 THEN PRINT CHR$ (7)"+++SYNTAX ERROR" 
: GOTO 140 

PRINT "TIPO DI ERRORE :"ER: PRINT "N.LINEA ERRORE :"EL: STOP 


1590 

1600 


1610 

1620 


REM —>RICERCA LA LINEA DA MODIFICARE<— 

IF LI < 1 THEN PRINT CHR$ (7)"+++ FILE DI LAVORO VUOTO": R 
ETURN 

IF MID$ (LI$,5,1) < > CHR$ (32) THEN PRINT CHR$ (7)"+++ 

SYNTAX ERROR": RETURN 

LI$ = RIGHT$ (LI$, LEN (LI$) - 5):SE = VAL (LI$) 

f Continua) 


79 




















1630 FOR I = 1 TO LI: IF SE - VAL ( LEFT$ (LI3(I),5)) THEN FL = 

I 

1640 NEXT : IF FL > 0 THEN I = FL:FL = 0: HOME : HTAB 2: PRINT LI 
$(I): VTAB 3: GOTO 1660 

1650 PRINT CHR$ (7)"+++NUMERO LINEA INESISTENTE": RETURN 

1660 REM —>EDITA<— 

1670 PO = 1:LI$ = LEFT$ (LI3(I),6) :LI3 (I) = RIGHT3 (LI$(I) # LEN 
(LI$ (I) ) - 6) 

1680 PRINT " A "; : HTAB 8 

1690 GET A$: IF A$ = CHR$ (21) THEN PO = PO + 1:H = PEEK (36): 
IF H = 39 THEN H = 0: PRINT : POKE 36,H: GOTO 1690 

1700 IF A$ - CHR$ (21) THEN H = H + 1: POKE 36,H: GOTO 1690 

1710 IF A3 = CHR3 (8) AND PO > 0 THEN PO = PO - 1: PRINT A3;: GO 
TO 1690 

1720 IF A3 = CHR5 (8) AND PO = 0 THEN 1690 

1730 IF A3 = CHR3 (13) AND LI3(I) = "" THEN J = I: FOR I = J + 1 

TO LI :LI3(I - 1) = LI3(I): NEXT :LI5(LI) = "":LI = LI - 1 : 
HOME : RETURN 

1740 IF A3 = CHR5 (13) THEN LI$(I) = LI3 + LI3(I): HOME': PRINT 
LI3(I): RETURN 

1750 IF A3 = CHRS (4) AND LEN (LIS(I)) < = 1 THEN LI3(I) = 

GOTO 1690 

1760 IF A3 = CHRS (4) AND PO = 1 THEN LIS(I) = RIGHT3 (LI3(I), 
LEN (LIS(I)) - 1): HOME : HTAB 2: PRINT LI$;LIS(I): VTAB 3: 
HTAB 8 : PO = 1: GOTO 1690 

1770 IF A3 = CHRS (4) AND PO = LEN (LIS(I)) THEN LIS(I) = LEFT 

3 (LlSd), PO - 1): PRINT " " CHRS (8) CHRS (8);:PO = PO - 1: 
GOTO 1690 

1780 IF A3 = CHRS (4) AND PO > LEN (LIS(I)) THEN 1690 

1790 IF A3 = CHRS (4) THEN T1S = LEFT3 (LI3(I),PO - 1):T23 = R 

IGHTS (LIS(I), LEN (LI3(I)) - PO):LI$(I) = T1S + T23:H = PE 
EK (36) :V = PEEK (37): HOME : PRINT " A,, LI$;LI3 (I) ; : POKE 36 
, H: POKE 37,V: GOTO 1690 

1800 IF PO = 1 THEN LIS(I) = A3 + LI3(I):PO = PO + 1:H = PEEK (3 
6) : H = H + 1 : HOME : PRINT ,,A " ;LIS;LIS (I) ; : POKE 36, H: GOTO 
1690 

1810 IF PO > LEN (LI3(I)) THEN PRINT A3;:LI3(I) = LIS(I) + A3 :P 
O = PO + 1: GOTO 1690 

1820 TI3 = LEFT3 (LI3(I),PO - 1) :T2S = A3 + RIGHT3 (LI3(I), LEN 
(LI3(I)) - (PO - 1)):LI3(I) = T13 + T23: PO = PO + 1 

1830 H = PEEK (36): IF H = 39 THEN H - 0:V = PEEK (37) + 1: GOT 
O 1850 

1840 H = H + 1 : V = PEEK (37) 

1850 HOME : PRINT ,,A " ;LIS;LIS (I) : HTAB H + 1: VTAB V + 1: GOTO 16 


Checksum del listato 1 

NOME FILE: 

TEXT FILE UTILITY 

TIPO: A 


LUNGHEZZA: 

148B 

CHECKSUM : 

22 


Figura 1. Esempio di file EXEC. 

10 62000 HOME 

20 62010 PRINT CHR$(4) "OPEN CAPTUREFP" 

30 62020 PRINT CHR$(4) "WRITE CAPTUREFP" 

40 62030 LIST, 61999 

50 62040 PRINT CHR$ (4) "CLOSE" 

60 62050 TEXT : HOME 

70 RUN 62000 
80 DEL 62000,62050 


Introduzione e 
possibili modifiche 

Per digitare Text File Utility co¬ 
piate il listato 1 e salvatelo con: 


S AVE TEXT FILE UTILITY 


aiutandovi eventualmente con i con¬ 
sigli della rubrica Per chi comincia. 

Nella tavola 1 sono elencate le 
locazioni delle varie subroutine. 

Per i possessori di Apple Ile non 
sarebbe arduo compito convertire il 
programma per la visualizzazione a 
80 colonne. Accertatevi solo che lo 
schermo a 80 colonne sia chiuso pri¬ 
ma di riversare il file di lavoro sulla 
stampante. Non passerà molto tem¬ 
po prima che scopriate che Text file 
utility è diventata necessaria. 


Questo programma è disponibile 
su dischetto. L’elenco, i prezzi 
e le modalità d’ordine di questo 
e degli altri dischetti disponibili 
sono riportati nella rubrica 
Disk Service. 






































GRAFICA 

Creazione e gestione di una figura a blocco, giunti alla quarta puntata, non 
dovrebbero riservare più sorprese. Né lo dovrebbe l'animazione. Invece... 


Più veloce 
senza scambio 


Abbiamo ormai scoperto quanto fa¬ 
cili siano da creare le figure a bloc¬ 
co, e anche con quale rapidità possa¬ 
no spostarsi qua e là sullo schermo. 
A mano a mano che veniva presenta¬ 
ta una nuova routine, o gruppo di 
routine, aggiungendo queste routine 
al driver si è cercato di dare una di¬ 
mostrazione del loro modo d'impie¬ 
go creando semplici programmi di 
chiamata in Applesoft. Si contano 
letteralmente a centinaia i modi in 
cui si possono affrontare differenti e- 
sigenze di animazione usando queste 
routine pilota. 

Inoltre uno dei principali vantag¬ 
gi di Block Shape Maker ( Applican¬ 
do n. 27 pag. 67) è che aiuta a com¬ 
prendere lo schermo Hi-Res: provan¬ 
do differenti configurazioni di bit al- 
finterno di byte singoli e contigui, 
e mettendo a uno o a zero il bit colo¬ 
re, si possono ottenere sullo scher¬ 
mo molti effetti interessanti quanto 
inattesi. Provate quindi a usarlo co¬ 
me strumento didattico e sperimenta¬ 
le, oltre che come utility grafica. 

Le routine del driver possono esse¬ 
re immaginate come nuovi comandi 
Applesoft, che hanno come sintassi 
appropriata CALL (indirizzo della 
routine) e causano una o più azioni. 
I programmi di prova sono dimostra¬ 
zioni molto semplici di come si pos¬ 
sano combinare vari comandi per 
trattare differenti situazioni grafiche. 

L'animazione 
a spostamento 

Dovreste avere ormai in mente un 
quadro piuttosto chiaro del modo in 
cui funziona l’animazione grafica. 
Sostanzialmente è la stessa faccenda 
più o meno in tutti i metodi che ave¬ 
te impiegato: cancellare-muovere-di- 


segnare-cancellare-muovere-disegna- 
re... eccetera. In ogni metodo finora 
visto si è trattato di disegnare e ridi¬ 
segnare continuamente, più e più 
volte, le informazioni contenute nel¬ 
la tavola delle figure. 

Con ranimazione a spostamento 
dovrete mettere da parte queste vec¬ 
chie idee, e rivedere completamente 
ciò che sapete dell’animazione grafi¬ 
ca. L'animazione a spostamento è 
quanto di più vicino ci sia alla vera 
animazione, poiché non utilizza alcu¬ 
na routine di disegno o di cancella¬ 
zione. In sostanza è proprio quello 
che sembra: si colloca una figura sul¬ 
lo schermo, e la si muove letteral¬ 
mente a destra o a sinistra attraverso 
lo schermo. 

Si disegna (DRAW) la figura una 
volta sola, per metterla inizialmente 
sullo schermo. Un’altra splendida ca¬ 


ratteristica dell'animazione a sposta¬ 
mento è che si può, volendo, usare 
solo uno schermo Hi-Res, e i risulta¬ 
ti saranno scorrevoli e privi di sfar¬ 
fallio come quelli per i quali abbia¬ 
mo finora avuto bisogno dello scam¬ 
bio di pagine. Il problema è che la 
vera animazione a spostamento fun¬ 
ziona solo con figure che si sposta¬ 
no da destra a sinistra a destra, e 
quindi se il vostro programma ha fi¬ 
gure che si spostano in su e in giù, 
oltre a figure che si spostano lateral¬ 
mente, può darsi che abbiate ancora 
bisogno di lavorare con lo scambio 
di pagine. 

L'idea di base dell'animazione a 
spostamento è questa. Prima predi¬ 
sponete le informazioni VT, VB, 
HR e HL per la vostra figura, e poi 
la disegnate sullo schermo. Una vol¬ 
ta che la figura è sullo schermo (nel- 


ListatO 1. Routine SHFTR/SHFTL/MOVEL e MOVER 


DOS 3.3 


SOURCE FILE: LISTATO 1 

NEXT OBJECT FILE NAME IS 


9197: 

OOFC: 

OOFD : 

OOFE : 

OOFF : 

0026: 

0027: 

0006: 

00FA: 

00FB : 

93 91: 

9197 :A5 FF 
9199:C9 02 
919B:90 0E 
919D:C6 FF 
919F:C6 FE 
91A1:A5 FF 
91A3:C9 01 
91A5:90 04 
91A7:C6 FF 
91A9:C6 FE 
91AB: 60 
91AC:E6 FF 
91AE:E6 FE 
91B0:E6 FF 


VT 
VB 
HR 
HL 

HBASL 
HBASH 

8 YO 

9 BASL 

10 BASH 

11 YADDR 

12 MOVEL2 

13 

14 

15 

16 

17 MOVEL1 

18 

19 

20 
21 

22 EXIT 

23 MOVER2 

24 

25 MOVER1 


ORG 
EQU 
EQU 
EQU 
EQU 
EQU 
EQU 
EQU 
EQU 
EQU 
• EQU 
LDA 
CMP 
BCC 
DEC 
DEC 
LDA 
CMP 
BCC 
DEC 
DEC 
RTS 
INC 
INC 
INC 


LISTATO 1.OBJ0 
$9197 
$FC 
$FD 
$FE 
$FF 
$26 
$27 
$6 
$FA 
$FB 
$9391 
HL 
#2 

EXIT 
HL 
HR 
HL 
#1 

EXIT 
HL 
HR 

HL 
HR 
HL 


Apple Ile 


Apple Ile 


(SCREEN BASE 
ADDRESS) 


DECIMAL 252 
DECIMAL 253 
DECIMAL 254 
DECIMAL 255 
DECIMAL 38 
DECIMAL 39 
DECIMAL 6 
DECIMAL 250 (TABLE BASE 
DECIMAL 252 ADDRESS) 

DECIMAL 37777 (READ YTABLE) 
CALL 37271 TO ENTER 
IS ,HL<2? 

YES-CANCEL EXECUTION 

HL=HL-1 

HR=HR-1 

CALL 37281 TO ENTER 
IS HL<1? 

YES-CANCEL EXECUTION 

HL=HL-1 

HR=HR-1 

DONE-EXIT ROUTINE 
CALL 37292 TO ENTER 
HR=HR+1:HL=HL+1 
CALL 37296 TO ENTER 


(Continua) 


81 



















la memoria Hi-Res) cambiate il valo¬ 
re di HR (per una figura che va ver¬ 
so destra) o di HL (per una figura 
che va verso sinistra), in modo che 
la dimensione HR-HL sia di un byte 
più larga della reale larghezza della fi¬ 
gura. Questo fa sì che immediata¬ 
mente davanti alla direzione di viag¬ 
gio della figura venga posta un'inte¬ 
ra colonna verticale di byte vuoti. 

A mano a mano che muovete la 
vostra figura attraverso lo schermo 
sposterete in avanti di una posizio¬ 
ne, nella direzione di viaggio, ogni 
bit della figura. Il bit più avanzato 
di ciascun byte sarà spostato nella 
posizione più arretrata del byte che 
lo precede immediatamente. 

Tenete presente, però, che questo è 
più esatto visivamente che tecnica- 
mente. A causa dell'effetto di inver¬ 
sione dei byte Hi-Res, che esamine¬ 
remo più avanti in qualche esempio, 
gli spostamenti di bit non fanno in 
realtà proprio quello che sembrano 
fare sullo schermo. Ci sono due rou¬ 
tine di spostamento, SHFTL che 
sposta la figura a sinistra e SHFTR 
che la sposta a destra. Un p assaggio 
attraverso SHFTL o SHFTR muove- 
rà l'intera figura di un bit (punto) a 
destra o a sinistra. Se volete muover¬ 
vi di 20 punti in una specifica dire¬ 
zione dovrete passare 20 volte attra¬ 
verso SHFTR o SHFTL. 

I bit del byte più avanzato della fi¬ 
gura, intanto, saranno spostati nella 
colonna vuota dei byte che sono sta¬ 
ti aggiunti immediatamente davanti 
ai byte della figura. Dopo sette spo¬ 
stamenti la figura sarà completamen¬ 
te spostata di un byte, e a questo 
punto la colonna di byte vuoti si sa¬ 
rà portata dietro la figura. In questo 
momento i valori di HR e HL sono 
entrambi incrementati o decrementa- 
ti (a seconda della direzione di viag¬ 
gio) di modo che la colonna di byte 
vuoti è nuovamente davanti alla figu¬ 
ra, in preparazione dei sette sposta¬ 
menti successivi. 

Invece del ritmo cancellare-muove- 
re-disegnare al quale siete abituati, il 
ritmo dell’animazione a spostamento 
sarà spostare sette volte-muovere 
HR/HL-spostare sette volte-muovere 
HR/HL... eccetera. 

Spostamenti laterali 
e routine 

I byte della grafica Hi-Res sono vi¬ 
sualizzati sullo schermo in ordine in¬ 
verso. Ciò significa che, per muove- 


91B2:E6 

FE 


26 

INC 

HR 

91B4:60 



27 

RTS 


91B5:A5 

FD 


28 SHFTL 

LDA 

VB 

91B7:85 

06 


29 

STA 

YO 

91B9:20 

91 

93 

30 L3 

JSR 

YADDR 

91BC : 18 



31 

CLC 


91BD: A4 

FE 


32 

LDY 

HR 

91BF : A9 

00 


33 ST 

LDA 

#0 

91C1:8 5 

08 


34 

STA 

$8 

91C3:85 

09 


35 

STA 

$9 

91C5:85 

07 


36 

STA 

$7 

91C7:90 

02 


37 

BCC 

CTI 

91C9:E6 

08 


38 

INC 

$8 

91CB:B1 

26 


39 CTI 

LDA 

(HBASL) , Y 

91CD:C9 

80 


40 

CMP 

#$80 

91CF: 90 

02 


41 

BCC 

CT2 

91D1:E6 

09 


42 

INC 

$9 

91D3:A5 

08 


43 CT2 

LDA 

$8 

91D5:F0 

07 


44 

BEQ 

CT3 

91D7:B1 

26 


45 

LDA 

(HBASL),Y 

91D9:0 9 

80 


46 

ORA 

#$80 

91DB:4C 

E2 

91 

47 

JMP 

CT4 

91DE:B1 

26 


48 CT3 

LDA 

(HBASL)/Y 

91E0:29 

7F 


49 

AND 

#$7F 

91E2:6A 



50 CT4 

ROR 

A 

91E3:91 

26 


51 

STA 

(HBASL),Y 

91E5: 90 

02 


52 

BCC 

CT5 

91E7:E6 

07 


53 

INC 

$7 

91E9:A5 

09 


54 CT5 

LDA 

$9 

91EB:C9 

01 


55 

CMP 

#$1 

91ED: 90 

06 


56 

BCC 

CT6 

91EF:B1 

26 


57 

LDA 

(HBASL),Y 

91F1:09 

80 


58 

ORA 

#$80 

91F3:91 

26 


59 

STA 

(HBASL),Y 

91F5:C4 

FF 


60 CT6 

CPY 

HL 

91F7:F0 

08 


61 

BEQ 

NXTLN3 

91F9:88 



62 

DEY 


91FA:A5 

07 


63 

LDA 

$7 

91FC:C9 

01 


64 

CMP 

#$1 

91FE:4C 

BF 

91 

65 

JMP 

ST 

9201:C6 

06 


66 NXTLN3 

DEC 

YO 

9203:A5 

06 


67 

LDA 

YO 

9205:C9 

FF 


68 

CMP 

#$FF 

9207 :F0 

04 


69 

BEQ 

RTN3 

9209 :C5 

FC 


70 

CMP 

VT 

920B:B0 

AC 


71 

BCS 

L3 

920D: 60 



72 RTN3 

RTS 


920E:A5 

FD 


73 SHFTR 

LDA 

VB 

9210:85 

06 


74 

STA 

YO 

9212:20 

91 

93 

75 L4 

JSR 

YADDR 

9215:18 



76 

CLC 


9216 :A4 

FF 


77 

LDY 

HL 

9218:A9 

00 


78 STI 

LDA 

#0 

921A:85 

08 


79 

STA 

$8 

921C: 85 

09 


80 

STA 

$9 

921E:B1 

26 


81 SHF 

LDA 

(HBASL),Y 

9220: 2A 



82 

ROL 

A 

9221:91 

26 


83 

STA 

(HBASL),Y 

9223 :B0 

02 


84 

BCS 

SI 

9225:90 

02 


85 

BCC 

CT1A 

9227 :E6 

08 


86 SI 

INC 

$8 

9229-.C9 

80 


87 CT1A 

CMP 

#$80 

922B:B0 

02 


88 

BCS 

SET64 

922D: 90 

02 


89 

BCC 

CT2A 

922F:E6 

09 


90 SET64 

INC 

$9 

9231 :A5 

08 


91 CT2A 

LDA 

$8 

9233:D0 

09 


92 

BNE 

S2 

9235 :B1 

26 


93 

LDA 

(HBASL),Y 

9237:29 

7F 


94 

AND 

#$7F 

9239:91 

26 


95 

STA 

(HBASL),Y 

923B:4C 

44 

92 

96 

JMP 

S3 

923E:B1 

26 


97 S2 

LDA 

(HBASL),Y 

9240:09 

80 


98 

ORA 

#$80 

9242:91 

26 


99 

STA 

(HBASL),Y 

9244:C4 

FE 


100 S3 

CPY 

HR 

9246 :F0 

09 


101 

BEQ 

NXTLN4 

9248:C8 



102 

INY 


9249:18 



103 

CLC 


924A-.A5 

09 


104 

LDA 

$9 

924C:C9 

01 


105 

CMP 

#$1 

924E:4C 

18 

92 

106 

JMP 

STI 

9251:C6 

06 


107 NXTLN4 

DEC 

YO 

9253 :A5 

06 


108 

LDA 

YO 

9255 :C9 

FF 


109 

CMP 

#$FF 

9257 :F0 

04 


110 

BEQ 

RTN4 

92 59 :C5 

FC 


111 

CMP 

VT 

925B:B0 

B5 


112 

BCS 

L4 

925D: 60 



113 RTN4 

RTS 



*** SUCCESSFUL ASSEMBLY: NO ERRORS 


I 


** HR=HR+1:HL=HL+1 
** DONE-EXIT ROUTINE 
** CALL 37301 TO ENTER 
** PUT IN $6 FOR USE BY YADDR 
** RETURNS-LO=HBASL/HI=HBASH 

** SET Y-REGISTER TO RIGHTMOST BYT; 

** ZERO-BIT 0 FLAG LAST CYCLE 
** ZERO-BIT 7 FLAG 
** ZERO-BIT 0 FLAG THIS CYCLE 
** IF BIT 0=0 JUMP 
** SET-BIT 0 FLAG LAST CYCLE 
** GET SHAPE BYTE FROM SCREEN 
** IS COLOR BIT SET ? 

** NO-JUMP 

** SET BIT 7 FLAG 

** GET-BIT 0 LAST CYCLE FLAG 

** IF IT 1 S CLEAR-JUMP 

** GET SHAPE BYTE FROM SCREEN 

** SET BIT 7 

** BIT SET-CONTINUE 

** GET SHAPE BYTE FROM SCREEN 

** PUT 0 IN BIT 7 

** ROTATE BYTE RIGHT 

** LOAD BYTE ON SCREEN 

** IF BIT ZERO=0 JUMP 

** BUMP 0 BIT FLAG THIS CYCLE 

** GET BIT 7 FLAG 

** IS IT SET ? 

** NO-JUMP 

** GET SHAPE BYTE FROM SCREEN 
** PUT A 1 IN BIT 7 
** LOAD BYTE ON SCREEN 
** HAVE WE REACHED HL ? 

** YES-GOTO NEXT LINE 
** POINT TO NEXT BYTE <— 

** GET-0 BIT FLAG THIS CYCLE 
** IF 1 SET CARRY WITH CMP 

** MOVE UP TO NEXT LINE 

** GET NEW Y-COORDINATE 

** HAS Y-COORDINATE REACHED 0 ? 1 

** YES-WE'RE FINISHED 

** HAVE WE REACHED VT YET ? 

** NO-START THE NEXT LINE 
** DONE-EXIT ROUTINE 
** CALL 37390 TO ENTER 
** STORE IN $6 FOR USE BY YADDR . 
** RETURNS-LO=HBASL/HI=HBASH 

** SET Y-REG TO LEFTMOST BYTE 

** PUT A 0 IN ACCUMULATOR 

** CLEAR BIT 7 FLAG 

** CLEAR BIT 6 FLAG 

** GET SHAPE BYTE FROM SCREEN 

** ROTATE LEFT 

** LOAD BYTE BACK ON SCREEN 

** IF BIT 7=1 BEFORE SHIFT-JUMP I 

** IF BIT 7=0 BEFORE SHIFT-JUMP f 

** SET BIT 7 FLAG 

** IS BIT 7 NOW A 1 ? 

** YES-GO SET BIT 6 

** NO-CONTINUE 

** SET BIT 6 FLAG 

** GET BIT 7 FLAG 

** IF IT 1 S SET-JUMP 

** GET SHAPE BYTE FROM SCREEN 

** PUT A 0 IN BIT 7 

** LOAD BYTE TO SCREEN 

** BIT 7 OKAY-JUMP 

** GET SHAPE BYTE FROM SCREEN 

** PUT A 1 IN BIT 7 

** LOAD BYTE TO SCREEN 

** HAVE WE REACHED HR YET ? 

** YES-GOTO NEXT LINE 
** POIN*TO NEXT BYTE-> 

** GET BIT 6 FLAG 

** USE CMP TO SET CARRY 

** GO SHIFT MORE BYTES 

** MOVE UP TO NEXT LINE 

** GET NEW Y-COORDINATE 

** HAS Y-COORDINATE REACHED 0 ? 

** YES-WE*RE FINISHED 
** HAVE WE REACHED VT YET ? 

** NO-START THE NEXT LINE 
** DONE-EXIT ROUTINE 


I 




BIT 

BYTE ORIGINALE 76543210 (mostrato nell'ordine normale) 

Stato del bit 0 1 0 0 1 1 0 0 (il movimento apparente sarà a sinistra) 

ROR 

|-► 7 0 1 0 0 1 1 0 - 

CARRY 

| - 0 - 

Figura 1. 


Spostamento verso sinistra con ROR Sullo schermo 



8194 

8195 

8196 

8194 

8195 

8196 

START 

cooooooo 

C1100111 

C0111001 

0000000 

1110011 

1001110 

Loop 1 

C1000000 

C1110011 

C0011100 

0000001 

1100111 

0011100 

Loop 2 

CI100000 

COI11001 

C0001110 

0000011 

1001110 

0111000 

Loop 3 

CI110000 

C0011100 

C0000111 

0000111 

0011100 

1110000 

Loop 4 

C0111000 

C1001110 

C0000011 

0001110 

0111001 

1100000 

Loop 5 

C0011100 

C1100111 

C0000001 

0011100 

1110011 

1000000 

Loop 6 

C1001110 

C1110011 

cooooooo 

0111001 

1100111 

0000000 

Loop 7 

C1100111 

COI11001 

cooooooo 

1110011 

1001110 

0000000 

BUS 

76543210 

76543210 

76543210 

0123456 

0123456 

0123456 

Loop 1 

CI000000 

Lì 

C1110011 

J—F 

C0011100 

-4— J 

0000001 1100111 0011100 
4_1 4_1 


spostamento reale 

spostamento apparente 


Figura 2. 


re la figura a destra, si spostano i bit 
a sinistra, e per muoverla a sinistra 
li si sposta a destra. I nomi delle rou¬ 
tine indicano la direzione del moto 
apparente, non di quello dei bit. 

La prima routine di animazione a 
spostamento (linee da 73 a 113 d el 
listato 1) è denominata SHFTR e 
fa muovere la figura da sinistra a de¬ 
stra attraverso lo schermo: SHFTR 
funziona sostanzialmente come le 
routine che abbiamo già esaminato, 
con la differenza che, come RE- 
VDIR, comincia a trattare la figura a 
VB/HL anziché a VB/HR come è 
normale. Quando userete SHFTR vi 
occorrerà sempre almeno una colon¬ 
na di byte vuoti immediatamente da¬ 
vanti ai byte della figura (cioè alla 
loro destra), il che significa che HR 
dev’essere sempre maggiorato alme¬ 
no di uno. SHFTR comincia a 
$920E e prende posto immediata¬ 
mente sotto le nostre routine di mo¬ 
vimento verticale. 

La seconda routine di spostamento 
(linee 2 8-72 del listato 1) è chia¬ 
mata SHFTL e fa muovere la figura 
da destra a sinistra attraverso lo 
schermo. Anche SHFTL è molto si¬ 
mile alle altre routine e comincia a 
trattare la figura a VB/HR. Quando 
userete SHFTL vi occorrerà sempre 
almeno una colonna di byte vuoti 


immediatamente a sinistra dei byte 
della figura, il che vuol dire che HL 
deve essere sempre diminuito alme¬ 
no di uno. SHFTL comincia a 
$91B5 e trova posto immediatamen¬ 
te prima della routine SHFTR. 

Le successive aggiunte al vostro 
driver sono le routine di movimen¬ 
to, che trovano posto immediata¬ 
mente sotto SHFTL e danno al dri¬ 
ver la nuova posizione di partenza di 
$9197 (linee 12-27 del listato 1). 
Scopo delle routine di movimento è 
quello di procurare un metodo rapido 
e facile per cambiare i valori di HR 
e HL. Chiamando uno dei vari punti 
d'ingresso possibili si può usare la 
routine per INCrementare o DECre- 
mentare HR e HL di uno o due, o 
INCrementare o DECrementare HR 
soltanto. Inoltre la routine fa un con¬ 
trollo per assicurarsi che non permet¬ 
tiate accidentalmente a SEFTL di 
superare l’orlo sinistro dello scher¬ 
mo e bloccare il programma, con un 
valore negativo di HL. 

Per aggiungere al driver queste 
nuove routine si usa il Tool Kit As¬ 
sembler o semplicemete si caricano 
con BLOAD le vecchiè routine (Ap¬ 
plicando n. 27 pag. 67) aggiungendo 
i byte esadecimali delle nuove. A co¬ 
loro che hanno poca pratica con V As¬ 
sembler sarà utile il listato 11, 


che è il dump esadecimale dell’intero 
drive e comprende sia il drive pubbi- 
cato sul numero 27 di Applicando 
sia le routine disassemblate dei lista¬ 
ti 1 e 6. Si salva con BSAVE BLO¬ 
CK ROUTENES, A$911A, L$4E6. 

Come funzionano le 
routine di spostamento 

Ogni routine comincia dalla riga 
più bassa di byte di schermo occupa¬ 
ta dalla figura, al byte più arretrato, 
poi percorre ogni riga orizzontale di 
byte dal retro (da cui proveniamo) al 
davanti (dove andiamo), fino a che 
sono state elaborate tutte le righe. 

I comandi chiave di ciascuna routi¬ 
ne sono i comandi ROL, di rotazio¬ 
ne a sinistra (ROtate Left), e ROR, 
di rotazione a destra (ROtate Right). 
Vediamo dunque cosa accade, usando 
come esempio ROR (figura 1). 

Quando si fa il ROR del byte ruo¬ 
tandolo a destra, il contenuto del car- 
ry (un bit speciale nel registro di sta¬ 
to del 6502) viene spinto nel bit 7, 
che spinge tutti gli altri bit a destra 
di una posizione. Poi il bit 0 se ne 
va e finisce nel carry. Con varie pro¬ 
ve, impostando differenti flag, ognu¬ 
na delle routine di spostamento è in 
grado di individuare e influenzare il 
contenuto del carry e di tenere impo¬ 
stato a dovere il bit colore. 

Mediante questi flag le routine so¬ 
no in grado di spingere tutti i bit in 
là di una posizione, e sanno se ag¬ 
giungere uno 0 o un 1 al byte suc¬ 
cessivo. Il valore che viene spinto 
fuori del bit 0 e dentro il carry è in 
realtà inteso per il bit 6 del byte adia¬ 
cente sulla sinistra. 

Per avere un esempio del modo in 
cui funziona una routine di sposta¬ 
mento guardate la figura 2, che 
mostra SHFTL impegnata a muove¬ 
re a sinistra di sette punti (un byte) 
una figura larga due byte. La figura 
campione sarà alta soltanto un byte 
(veramente grande), e avrà sullo 
schermo questo aspetto: 1110011- 
1001110. Nel nostro esempio non 
ci preoccuperemo del bit colore (sup¬ 
porremo che sia uno zero), e mostre¬ 
remo solo i cambiamenti dei bit che 
appaiono sullo schermo. 

Quando l’abbiamo disegnata in ori¬ 
gine, la figura era larga due byte e ri¬ 
siedeva nei byte 8195 e 8196 a 
HR=4, HL=3. Per poter usare la rou¬ 
tine SHFTL si è poi cambiato HL 
in HL=2, aggiungendo il byte vuoto 
davanti alla figura a 8194. Potete 


83 

















Listato 2. Spostamento 


vedere che dopo sette spostamenti la 
figura si è spostata a sinistra, di mo¬ 
do che il byte vuoto che in partenza 
era davanti alla figura adesso è dietro 
di essa. Dovreste anche notare che 
mentre i veri valori di HR e HL era¬ 
no rispettivamente 4 e 3 prima dei 
sette spostamenti, essi sono diventa¬ 
ti, dopo i sette spostamenti, rispetti¬ 
vamente 3 per HR e 2 per HL. 

Vedrete che i bit danno l’impressio- 
ne di muoversi in avanti, andando 
nel nuovo byte, nei byte del display; 


DOS 3.3 


Apple Ile 


ma ciò che accade in realtà nei byte 
ruotati a destra con ROR è diverso. 

I bit che con la rotazione vengono 
fatti uscire da 8194 (HL) non vanno 
da nessuna parte. Il punto interrogati¬ 
vo che vedete è in realtà un enorme 
buco nero nello spazio, e i bit che 
vengono spostati fuori di HL finiran¬ 
no per cadervi. Ma non importa, per¬ 
ché quei bit 0 non ci servono. In o- 
gni modo farete bene a badare a non 
spostarvi attraverso HL più di sette 
volte, altrimenti comincerete a man¬ 


dare in quello stesso buco nero an¬ 
che la vostra figura. 

Dopo aver fatto sette spostamenti 
dovete cambiare HR e HL. Se vi sta¬ 
te muovendo a sinistra dovete decre- 
mentare HR e HL ogni sette sposta¬ 
menti, e se vi state muovendo a de¬ 
stra dovete incrementare HR e HL o- 
gni sette spostamenti. 

Ma proviamo a fare un poco di 
spostamento. Per eseguire le prove 
che affronteremo adesso dovrete anzi¬ 
tutto aggiungere al driver BLOCK 
SHAPE ROUTINES $925E (Appli¬ 
cando n. 27, p ag. 67) le routine 
SHFTR, SHFTL e MOVE (listato 
1). Dopo averle aggiunte, salvate il 
tutto sul dischetto con il nome BLO¬ 
CK ROUTINES ,A$9197 ,L$469. 

Ora caricatele in memoria con 
BLOAD con la figura esemplificati¬ 
va di astronave #144 (listato 9), e 
introducete le linee del programma 
in Applesoft del listato 2. 

La prima cosa che dovreste notare 
facendo girare questo programma è 
con quanta scorrevolezza si muove 
la figura, e così pure la totale assen¬ 
za di qualsiasi sfarfallio, per quanto 
stiamo facendo tutto il lavoro su u- 
na sola pagina. Normalmente per far 
correre tanto bene una figura occorre¬ 
rebbe lo scambio di pagine. 

Vediamo adesso come funziona il 
programma. La linea 10 si occupa di 
predisporre la grafica, YTABLE e il 
numero di figura. La linea 20 impo¬ 
sta i valori iniziali di VT, VB, HR e 
HL, poi disegna la figura iniziale. 
La linea 30 incrementa HR per ag¬ 
giungere a destra una colonna di 
byte vuoti. La linea 50 imposta il 
numero dei byte attraverso cui ci 
sposteremo. La linea 60 sposta per 
sette volte attraverso i byte correnti 
(muovendo verso destra). La linea 
70 incrementa HR e HL in prepara¬ 
zione dei sette spostamenti succes¬ 
sivi. La linea 80 fa passare a sinistra 
la colonna di byte vuoti per il viag¬ 
gio di ritorno. La linea 110 sposta 
per sette volte Atraverso i byte cor¬ 
renti (muovendo verso sinistra). La 
linea 120 decrementa HR e HL in 
preparazione dei sette spostamenti 
successivi. 

Come potete vedere il programma 
è semplice e lineare. Tutto quel che 
fa è impiegare dei loop per poter 
chiamare sette volte una routine di 
spostamento, e poi cambiare HR e 
HL prima di chiamare altre sette vol¬ 
te la stessa routine di spostamento. 

Ricordate che questo è solo un test 



Sommario dei 

nuovi punti di ingresso al Driver 

nome 

indirizzo 

indirizzo 

funzione 

SHFTR 

373§0 

$920E 

sposta l’intera figura a blocco di 1 punto a destra 

SHFTL 

37301 

$91B5 

sposta l'intera figura a blocco di 1 punto a sinistra 

MOVEL2 

37271 

$9197 

sottrae 2 da HR e HL 


37279 

$919F 

sottrae 2 da HR/sottrae 1 da HL 

MOVEL1 

37281 

$91A1 

sottrae 1 da HR e HL 


37289 

$91A9 

sottrae 1 da HR 

MOVER2 

37292 

$91 AC 

aggiunge 2 a HR e HL 


37294 

$91AE 

aggiunge 2 a HR/aggiunge 1 a HL 

MOVER1 

37296 

$91B0 

aggiunge 1 a HR e HL 


37298 

$91B2 

aggiunge 1 a HR 

SETCTR 

37146 

$911A 

imposta su 14 il contatore dei loop di spostamento 

DRAW1 

37154 

$9122 

imposta su display pagina 1/disegno pagina 2 


37159 

$9127 

imposta su disegno pagina 2 

DRAW2 

37164 

$912C 

imposta su disegno pagina 2/disegno pagina 1 


37169 

$9131 

imposta su disegno pagina 1 

SHFTR4 

37174 

$9136 

esegue completo spostamento e scambio pagine a destra 
pagina 2 - sposta di 4 punti/aziona il contatore due volte 
pagina 1 - sposta di 4 punti/aziona il contatore due volte 


37180 

$913C 

sposta soltanto pagina 1 

sposta di 4 punti/aziona il contatore due volte 


37192 

$9148 

sposta di 2 punti/aziona il contatore una volta 
(dovete impostare per pagina 1 prima di introdurre qui, 
altrimenti sposterete pagina 2 di 2 punti/azionerete 
il contatore una volta, poi sposterete pagina 1 di 4 punti/ 
azionerete il contatore due volte) 

SHTFL4 

37208 

$9158 

come SHFTR4 ma muove a sinistra 


37214 

$915E 

come 37180 ma muove a sinistra 


37226 

$916A 

come 37192 ma muove a sinistra 

MVCTRR 

37242 

$917A 

aziona contatore/fa test per 14 doppi spostamenti - se 14 
aggiunge 2 a HR e HL/reimposta il contatore su 14 

MVCTRL 

37258 

$918A 

aziona il contatore/fa test per 14 doppi spostamenti - se 14 
sottrae 2 da HR e HL/reimposta il contatore su 14 


Apple Ile 


5 REM RICHIEDE BLOCK ROUTINES E L'ASTRONAVE #144 
10 HGR : CALL 37799: POKE 251,144 

20 POKE 252,10: POKE 253,21: POKE 254,2: POKE 255,0: CALL 37679 
30 CALL 37298: REM INCREMENTA HR-AGGIUNGE UNA COLONNA DI BYTE VU 
OTI SULLA DESTRA 
50 FOR X = 0 TO 35 

60 FOR Y = 1 TO 7: CALL 37390: NEXT : REM SPOSTA DI 1 BYTE A DES 
TRA 

70 CALL 37296: REM INCREMENTA HR/HL 

80 NEXT : CALL 37281: REM SPOSTA LA COLONNA VUOTA IN AVANTI/A SI 
NISTRA 

100 FOR X = 0 TO 35 

110 FOR Y = 1 TO 7: CALL 37301: NEXT : REM SPOSTA DI 1 BYTE/A SI 

NISTRA 

120 CALL 37281: REM DECREMENTA HR/HL 
130 NEXT X 

140 GOTO 50 


84 















sul funzionamento delle routine. In 
un autentico ambiente di programma 
è sconsigliabile ricorrere per fanima- 
zione a ordinari loop FOR...NEXT: 
sono facili e comodi, ma ci sono 
modi più rapidi per costruire i loop. 

Inversione e 
scambio di pagine 

Adesso proviamo a fare un po' di 
spostamento con inversione dei lati 
della figura. Per eseguire questo test 
dovrete prima ricaricare la figura e- 
semplificativa #146 (l’autofurgone 
Arkansas Good-Ole-Boy - listato 
10). Dato che abbiamo aggiunto al¬ 
tre routine al nostro driver non potre¬ 
te più eseguirla come FURGONE 
#146; perciò trasferiamola adesso a 
$9000 e rinominiamola FURGONE 
#144. Quando l'avrete in memoria 
andate in Monitor (CALL -151) e 
poi usate il comando MOVE del Mo¬ 
nitor 9000<9200.9259M per il tra¬ 
sferimento. Una volta che è trasferi¬ 
ta risalvatela sul dischetto con BS A- 
VE FURGONE #144,A$9000,L90. 

Dovrete anche ricaricare il driver 
(lo avete danneggiato caricando la 
vecchia figura del camion) e poi in¬ 
trodurre le linee del programma in 
Applesoft del listato 3. 

Quando farete girare questo pro¬ 
gramma vedrete l’autocarro che scor¬ 
re attraverso lo schermo e inverte di¬ 
rezione prima di fare il viaggio di ri¬ 
torno. Tornato alla posizione di par¬ 
tenza farà di nuovo dietrofront, di 
modo che sarà sempre rivolto nella 
direzione giusta. Dato che la routine 
REVDIR fa il suo lavoro sullo 
schermo, la figura non sfarfallerà 
mai, nemmeno durante l’azione d’in¬ 
versione della posizione. Esaminia¬ 
mo anzitutto il programma com’è 
scritto, poi vedremo come migliorar¬ 
lo eliminando qualche passo. 

Le linee 10-70 fanno tutte le stes¬ 
se cose del listato 1 , con la diffe¬ 
renza che variano i valori di VT, 
VB, HR e HL. La linea 80 prima ri¬ 
muove la colonna supplementare di 
byte che c’è davanti alla figura, ri¬ 
portando questa alle sue vere dimen¬ 
sioni, poi in verte i lati della figura. 
Quando questa è invertita la colonna 
supplementare di byte viene rimessa 
a posto e trasferita sulla sinistra. La 
linea 130 rimuove nuovamente la co¬ 
lonna supplementare di byte, inverte 
la figura e rimette a posto la colon¬ 
na supplementare di byte. 

Il programma ha funzionato molto 


Listato 3. Spostamento e inversione 


5 REM RICHIEDE BLOCK ROUTINES E IL FURGONE #144 
10 HGR : CALL 37799: POKE 251,144 
20 POKE 252,130: POKE 253,144: POKE 254,5: POKE 255,0: CALL 37679 
30 CALL 37298: REM AGGIUNGE UNA COLONNA DI BYTE VUOTI/A DESTRA 
50 FOR X = 0 TO 33 

60 FOR Y = 1 TO 7: CALL 37390: NEXT : REM SPOSTA DI 1 BYTE 
70 CALL 37296: REM INCREMENTA HR/HL 

80 NEXT : CALL 37289: CALL 37606: CALL 37298: CALL 37281: REM RI 
MUOVE IL BYTE INIZIALE/INVERTE/RIPRISTINA IL BYTE INIZIALE/INV 
ERTE IL BYTE INIZIALE 
100 FOR X = 0 TO 33 

110 FOR Y = 1 TO 7: CALL 37301: NEXT : REM SPOSTA DI 1 BYTE A SI 
NISTRA 

120 CALL 37281: REM DECREMENTA HR/HL 

130 NEXT : CALL 37289: CALL 37606: CALL 37298 

140 GOTO 50 


DOS 3.3 


Apple Ile 
Apple Ile 


bene. Tuttavia eliminando i passi ag¬ 
giuntivi richiesti prima di ogni in¬ 
versione per ripristinare le vere di¬ 
mensioni HR-HL si accelererebbe l’e¬ 
secuzione risparmiando memoria. 

Finora abbiamo disegnato la figu¬ 
ra nella sua vera posizione HR/HL, 
aggiungendole poi davanti una colon¬ 
na di byte vuoti. Vediamo adesso 
che cosa accadrebbe se facessimo di¬ 
ventare la colonna vuota una parte 
permanente della figura. 

Prima di introdurre il listato 4 
modificate la tavola delle figure me¬ 
diante il listato 3: aggiungete al 
listato 3 questa linea: 35 STOP. A- 
desso fate girare il listato 3. A que¬ 
sto punto la vostra figura sarà sullo 
schermo, e HR/HL saranno imposta¬ 
te a dovere con una colonna di byte 
vuoti sul davanti (cioè sulla destra) 
della figura. Ora fate CALL 37729, 
chiamando SCAN per creare una 
nuova tavola delle figure, e salvatela 
sul dischetto con BSAVE FURGO¬ 
NE* 1#144,A$9000,L105. Adesso 


potete cancellare il listato 3 e intro¬ 
durre il listato 4, che come noterete 
è molto più semplice del listato 3. 

Quando eseguirete il listato 4 sco¬ 
prirete che gira bene come il nostro 
test precedente, pur avendo meno i- 
struzioni. Non riuscirete probabil¬ 
mente a rilevare alcuna differenza di 
velocità, ma in un programma in 
cui si manipolano molte figure le 
differenze potrebbero essere evidenti. 

Ecco come funziona il listato 4: la 
linea 10 fa ancora quello che faceva 
nelle precedenti prove. La linea 20 è 
uguale a prima, tranne il fatto che 
FIR è passato adesso da 5 a 6. Non 
c’è linea 30. Non abbiamo bisogno 
di aggiungere la colonna supplemen¬ 
tare di byte perché è già incorporata 
nella nostra figura. Gli altri soli 
cambiamenti si trovano nelle linee 
80 e 130. La linea 80 non fa che can¬ 
cellare l’ultimo incremento di 
HR/HL dalla linea 70 e invertire la 
figura, il che mette inoltre a sinistra 
la colonna di byte vuoti. La linea 


POKE SPECIALI da usare con il driver: 

POKE 37201,96 POKE 37235,96 Modificano SHFTR4 e SHFTL4 per 
cancellare lo scambio di pagine automatico e trattare solo una pagina 
alla volta (per l’uso con figure multiple). 

POKE 37201,165 POKE 37235,165 Ripristinano SHFTR4 e SHFTL4 al 
normale scambio di pagine (per l’uso con una sola figura). 

Come dovreste ricordare dalle nostre precedenti trattazioni, quando 
avete a che fare con più di una figura alla volta dovete spostare tutte le 
vostre figure su un'unica pagina prima di scambiare le pagine. Quando 
avete a che fare con più di una figura introducete prima i POKE 
occorrenti per annullare lo scambio di pagine, poi chiamate SHFTR4 o 
SHFTL4 per spostare a pagina 2. Quindi trasferite le altre vostre figure 
su pagina 2. Infine introducete SHFTR4 o SHFTL4 a 37180 o 37214 per 
scambiare le pagine e spostare la figura su pagina 1, dopo di che 
dovrete completare il movimento per le altre vostre figure su pagina 1. 

I primi due POKE sostituiscono con RTS il LDA delle linee 31 e 45 del 
listato 6, e i secondi due POKE ricollocano il LDA nelle stesse linee. 


85 












Listato 4. Mantenimento colonna di byte vuoti 


5 REM RICHIEDE BLOCK ROUTINES E IL FURGONE+1 #144 
10 HGR : CALL 37799: POKE 251,144 
20 POKE 252,130: POKE 253,144: POKE 254,6: POKE 255,0: CALL 37679 

50 FOR X - 0 TO 33 

60 FOR Y * 1 TO 7: CALL 37390: NEXT : REM SPOSTA DI 1 BYTE 

70 CALL 37296: REM INCREMENTA HR/HL 

80 NEXT : CALL 37281: CALL 37606: REM INVERTE LA FIGURA 
100 FOR X - 0 TO 33 

110 FOR Y - 1 TO 7: CALL 37301: NEXT : REM SPOSTA DI 1 BYTE A SI 
NISTRA 

120 CALL 37281: REM DECREMENTA HR/HL 

130 NEXT : CALL 37606: REM INVERTE LA FIGURA 

140 GOTO 50 


DOS 3.3 


Apple Ile 
Apple Ile 


Listato 5. Versione in L.M. 
del listato 4 


800.851 


0800- 

20 

A7 

93 

A9 

90 

85 

FB 

A9 

0808- 

82 

85 

FC 

A9 

90 

85 

FD 

A9 

0810- 

06 

85 

FE 

A9 

00 

85 

FF 

20 

0818- 

2F 

93 

A9 

21 

85 

EB 

A9 

07 

0820- 

85 

EC 

20 

0E 

92 

C6 

EC 

DO 

0828- 

F 9 

20 

B0 

91 

C 6 

EB 

DO 

EE 

0830- 

20 

Al 

91 

20 

E 6 

92 

A9 

21 

0838- 

85 

EB 

A9 

07 

85 

EC 

20 

B5 

0840- 

91 

C6 

EC 

DO 

F9 

20 

Al 

91 

0848- 

C6 

EB 

DO 

EE 

20 

E6 

92 

4C 

0850- 

1A 

08 








Salvare con: 

BSAVE LISTATO 5,A$800,L83 


130 non fa che invertire la figura, oc¬ 
cupandosi anche qui della colonna di 
byte vuoti. 

In sostanza nel listato 4 abbiamo 
fatto della colonna di byte vuoti una 
parte permanente della figura. Ogni 
volta che attraversiamo uno dei loop 
di sette spostamenti inviamo questa 
prima colonna di byte vuoti della ta¬ 
vola delle figure nel famigerato buco 
nero dello spazio. Tuttavia, dato che 
la rimettiamo a posto quando incre¬ 
mentiamo o decrementiamo HR/HL 
ogni sette spostamenti, va bene co¬ 
sì, perché non ci spostiamo mai tan¬ 
to in là da danneggiare la figura vera 
e propria, che comincia solo con la 
seconda colonna di byte della tavola. 

Il dump esadecimale del listato 
5 è una versione in linguaggio mac¬ 
china del listato 4. Per usarlo dovre¬ 
te mettere in memoria il driver e 
FURGONE+1 #144, poi introdurre 
i byte esadecimali tramite il Moni¬ 
tor partendo da $800. Poi introduce¬ 
te HGR e fate CALL 2048. 

Questo volta il vostro autocarro si 
muoverà molto più rapidamente at¬ 
traverso lo schermo. Adesso vedre¬ 
mo come trattare laminazione a spo¬ 
stamento mediante lo scambio di pa¬ 
gine, che probabilmente userete in 
molti dei vostri programmi. 

Passare allo scambio di pagine 
con l'animazione a spostamento è ab¬ 
bastanza semplice; ci sono però due 
differenze. La prima è che invece di 
muovere un solo punto per mossa 
passeremo a due punti per mossa, 
un movimento ancora piccolo a suf¬ 
ficienza perché laminazione resti pia¬ 
cevole e scorrevole. 

Un vantaggio importante dell'uso 
dellanimazione a scambio di pagine 
è la protezione del colore. Se aveste 


usato nelle precedenti prove di spo¬ 
stamento a un bit una figura conte¬ 
nente colore questo avrebbe sfarfalla¬ 
to a ogni spostamento. 

Con lo scambio di pagine visualiz¬ 
zeremo la figura solo ogni due spo¬ 
stamenti, e questo terrà sempre i bit 
su coordinate DISPARI o PARI, eli¬ 
minando ogni cambiamento visibile 
del colore. 

Lasecondadifferenzaèchemettere- 
mo sempre due colonne di byte vuo¬ 
ti immediatamente davanti ai byte 
della figura, e faremo un doppio in¬ 
cremento di HR e HL ogni sette spo¬ 
stamenti. Per mantenere facile il la¬ 
voro incorporeremo nella nostra fi¬ 
gura le due colonne supplementari di 
byte vuoti. 


Velocizzazione 
e miglioramenti 

E' stata ormai presentata la mag¬ 
gioranza delle parti essenziali del dri¬ 
ver. Le routine che esaminiamo ades¬ 
so non sono altro che routine genera¬ 
lizzate, intese a combinare diverse i- 
struzioni e chiamate dell Applesoft 
in un'unica routine in linguaggio 
macchina, che contribuisca a far ri¬ 
sparmiare memoria, accelerare l'ese¬ 
cuzione e rendere più facile il debug¬ 
ging del programma finito. 

La routine SETCTR viene usata 
per impostare o reimpostare su 14 
il contatore dei loop di spostamento, 
in modo da potere tener nota del pun¬ 
to in cui ci si trova nei loop, e del 


Listato 6. Routine SHIFT e FLIP 


SOURCE FILE: LISTATO 6 


-NEXT 

OBJECT FILE NAME 

, IS 

LISTATO 6. 

, OB J0 


911A: 



1 


ORG 

$911A 



91B5: 



2 

SHFTL 

EQU 

S91B5 



920E : 



3 

SHFTR 

EQU 

$920E 



9197: 



4 

MOVEL2 

EQU 

$9197 



91AC: 



5 

MOVER2 

EQU 

$91 AC 



00FB: 



6 

BASH 

EQU 

$FB 

** 

SHAPE # (251) 

911A:A9 

0E 


7 

SETCTR 

LDA 

#14 

* ★ 

CALL 37146 TO ENTER 

911C:A6 

FB 


8 


LDX 

BASH 

★ * 

SET X-REGISTER OFFSET 

911E:9D 

6F 

8F 

9 


STA 

$8F6F,X 

* * 

RESET COUNTER TO 14 

9121:60 



10 


RTS 


** 

DONE-EXIT 

9122 :A9 

00 


11 

DRAW1 

LDA 

#0 

★ * 

CALL 37154 TO ENTER 

9124:8D 

54 

CO 

12 


STA 

$C054 

** 

DISPLAY PAGE 1 

9127:A9 

40 


13 


LDA 

#$40 



9129:85 

E6 


14 


STA 

$E6 

* * 

DRAW PAGE 2 

912B:60 



15 


RTS 


* * 

DONE-EXIT 

912C:A9 

00 


16 

DRAW2 

LDA 

#0 

* * 

CALL 37164 TO ENTER 

912E:8D 

55 

CO 

17 


STA 

$C055 

* * 

DISPLAY PAGE 2 

9131 :A9 

20 


18 


LDA 

#$20 



9133:85 

E6 


19 


STA 

$E6 

* ★ 

DRAW PAGE 1 

9135:60 



20 


RTS 


★ * 

DONE-EXIT 

9136:20 

22 

91 

21 

SHFTR4 

JSR 

DRAW1 

* * 

CALL 37174 TO ENTER 

9139:18 



22 


CLC 


* * 

SET-UP FOR JUMP 

913A:90 

03 


23 


BCC 

J2 

★ * 

GO SHIFT PAGE 2 

913C: 20 

2C 

91 

24 

J1 

JSR 

DRAW2 

** 

SHIFT PAGE 1 (CALL 37180) 

913F:20 

0E 

92 

25 

J2 

JSR 

SHFTR 

★ * 

FIRST SHIFT 

9142:20 

0E 

92 

26 


JSR 

SHFTR 

** 

SECOND SHIFT 

9145:20 

7A 

91 

27 


JSR 

MVCTRR 

** 

DEC CTR/TEST 14 SHIFTS 

9148:20 

0E 

92 

28 


JSR 

SHFTR 

* ★ 

THIRD SHIFT (CALL 37192) 

914B:20 

0E 

92 

29 


JSR 

SHFTR 

* * 

FOURTH SHIFT 


86 













Listato 7. Espansione delle capacità della figura 


10 HGR : HGR2 : CALL 37799: POKE 251,144 
20 POKE 252,130: POKE 253,144: POKE 254,7: POKE 255,0 
30 CALL 37679: REM DISEGNA LA FIGURA A PAGINA 2 
35 CALL 37146: REM IMPOSTA L'INIZIO DEL CONTATORE=14 
40 POKE 230,32: CALL 37679: CALL 37192: REM DISEGNA A PAGINA 1/S 
POSTA A DESTRA DI 2/DEC CONTATORE 
50 FOR X = 1 TO 56 
60 CALL 37174: NEXT 

70 POKE 230,32: CALL 37226: CALL 37679: REM MUOVE INDIETRO DI 2/ 
CANCELLA PAGINA 1 

80 POKE 230,64: CALL 37606: REM INVERTE PAGINA 2 
85 CALL 37146: REM REIMPOSTA CONTATORE=14 

90 POKE 230,32: CALL 37679: CALL 37226: REM DISEGNA A PAGINA 1/M 
UOVE AVANTI DI 2 
100 FOR X « 1 TO 56 
110 CALL 37208: NEXT 

120 POKE 230,32: CALL 37192: CALL 37679: REM MUOVE INDIETRO DI 2 
/CANCELLA PAGINA 1 

130 POKE 230,64: CALL 37606: REM INVERTE PAGINA 2 
140 GOTO 35 


DOS 3.3 


Apple He 
Apple Ile 


Listato 8. Versione in L.M. 
dei listato 7 


800.86C 


0800- 

20 

Al 

93 

A9 

90 

85 

FB 

85 

0808- 

FD 

A9 

82 

85 

FC 

A9 

07 

85 

0810- 

FE 

A9 

00 

85 

FF 

20 

2F 

93 

0818- 

20 

1A 

91 

A9 

20 

85 

E6 

20 

0820- 

2F 

93 

20 

48 

91 

A9 

38 

85 

0828- 

1B 

20 

36 

91 

C6 

1B 

DO 

F9 

0830- 

A9 

20 

85 

E6 

20 

6A 

91 

20 

0838- 

2F 

93 

A9 

40 

85 

E6 

20 

E6 

0840- 

92 

20 

1A 

91 

A9 

20 

85 

E6 

0848- 

20 

2F 

93 

20 

6A 

91 

A9 

38 

0850- 

85 

1B 

20 

58 

91 

C6 

1B 

DO 

0858- 

F9 

A9 

20 

85 

E6 

20 

48 

91 

0860- 

20 

2F 

93 

A9 

40 

85 

E6 

20 

0868- 

E6 

92 

4C 

18 

08 





Salvare con: 

BSAVE LISTATO 8,A$800,L110 


momento in cui occorre cambiare i 
valori di HR e HL. Si è costruita u- 
na tavola dei contatori, che è situata 
alla fine della pagina 143 della me¬ 
moria. 

Aggiungendo altre routine al dri¬ 
ver potreste scoprire che dovete spo¬ 
stare la tavola più in basso, magari 
a $8E6F o a $8D6F. Per far questo 
basta cambiare l'indirizzo che si vede 
nelle linee 9, 50, 54 e 57. Con la 
presente configurazione ci saranno 
contatori separati allocati a ogni sin¬ 
golo numero di figura, con il conta¬ 
tore #144 all'ultimo byte della pagi¬ 
na, e ciascun numero di figura-nume¬ 
ro di contatore al byte inferiore adia¬ 
cente. Potete immaginare la tavola 
come una matrice in Applesoft. 


Se avete a che fare soltanto con 
qualche figura potreste prendere in 
considerazione per i vostri contatori 
l'impiego di un indirizzo non utiliz¬ 
zato della pagina zero. L'esecuzione 
ne sarà accelerata; dovrete però rive¬ 
dere un po' il driver. 

Se avete a che fare con una figura 
lunga più di una pagina, dovrete 
cambiare alquanto le cose, perché u- 
na volta che BASH sarà stato incre¬ 
mentato dalla routine DRAW o RE- 
VDIR il vostro numero di figura 
punterà al contatore sbagliato. Se 
state impaccando più di una figura 
per pagina questo metodo non fun¬ 
zionerà affatto. State solo in guardia 
contro i potenziali rischi menzionati 
per le altre configurazioni, e badate a 


non lasciare che eventuali tavole del¬ 
le figure a pagina 143 invadano la 
tavola dei contatori. Il byte più bas¬ 
so utilizzato nella tavola dei contato¬ 
ri sarà $8F6F+(valore del numero di 
figura più basso). 

Le routine DRAW1 e DRAW2 del 
listato 6 non fanno che impostare 
la pagina su cui disegnare e la pagi¬ 
na da visualizzare. Il nome della rou¬ 
tine indica quale pagina sarà visualiz¬ 
zata durante le presenti operazioni di 
disegno. _ 

Le routine SHFTR4 e SHFTL4 
sono le routine di spostamento a 
scambio di pagine, e gestiscono la 
parte più importante della manipola¬ 
zione di spostamento. 

SHFTR4 muove la figura a destra 


914E 

20 

7A 

91 

30 


JSR 

MVCTRR 

★ ★ 

DEC CTR/TEST 14 SHIFTS 

9151 

A5 

E6 


31 


LDA 

$E6 

★ ★ 

WHAT PAGE ARE WE ON? 

9153 

C9 

40 


32 


CMP 

#$40 

** 

ARE WE ON PAGE 2? 

9155 

F0 

E5 


33 


BEQ 

J1 

★ ★ 

YES-NOW DO PAGE 1 

9157 

60 



34 


RTS 


★ * 

DONE-EXIT ROUTINE 

9.158 

20 

22 

91 

35 

SHFTL4 

JSR 

DRAW1 

★ ★ 

CALL 37208 TO ENTER 

915B 

18 



36 


CLC 


★ ★ 

SET-UP FOR JUMP 

915C 

90 

03 


37 


BCC 

J4 

*★ 

GO SHIFT PAGE 2 

915E 

20 

2C 

91 

38 

J3 

JSR 

DRAW 2 

★ ★ 

SHIFT PAGE 1 (CALL 37214) 

9161 

20 

B5 

91 

39 

J 4 

JSR 

SHFTL 

★ ★ 

FIRST SHIFT 

9164 

20 

B5 

91 

40 


JSR 

SHFTL 

★ * 

SECOND SHIFT 

9167 

20 

8A 

91 

41 


JSR 

MVCTRL 

★ ★ 

DEC CTR/TEST 14 SHIFTS 

91 6A 

20 

B5 

91 

42 


JSR 

SHFTL 

★ * 

THIRD SHIFT (CALL 37226) 

91 6D 

20 

B5 

91 

43 


JSR 

SHFTL 

★ ★ 

FOURTH SHIFT 

9170 

20 

8A 

91 

44 


JSR 

MVCTRL 

★ ★ 

DEC CTR/TEST 14 SHIFTS 

9173 

A5 

E6 


45 


LDA 

$E6 

★ * 

WHAT PAGE ARE WE ON? 

9175 

C9 

40 


46 


CMP 

#$40 

** 

ARE WE ON PAGE 2? 

9177 

F0 

E5 


47 


BEQ 

J3 

*★ 

YES-NOW DO PAGE 1 

9179 

60 



48 


RTS 


*★ 

DONE-EXIT ROUTINE 

917A 

A6 

FB 


49 

MVCTRR 

LDX 

BASH 

★ * 

CALL 37242 TO ENTER 

917C 

DE 

6F 

8F 

50 


DEC 

$8F6F,X 

★ ★ 

DECREMENT COUNTER 

917F 

DO 

08 


51 


BNE 

J5 

★ ★ 

LESS THAN 14 SHIFTS-JUMP 

9181 

20 

AC 

91 

52 


JSR 

MOVER2 

★ ir 

DOUBLÉ INCREMENT HR/HL 

9184 

A9 

0E 


53 

J 6 

LDA 

#14 

★ ★ 

RESET SHIFT- 

9186 

9D 

6F 

8F 

54 


STA 

$8F6F,X 

ir ir 

COUNTER TO 14 

9189 

60 



55 

J5 

RTS 


ir 

* DONE-EXIT ROUTINE 

918A 

A6 

FB 


56 

MVCTRL 

LDX 

BASH 

ir ★ 

CALL 37258 TO ENTER 

918C 

DE 

6F 

8F 

57 


DEC 

$8F6F,X 

★ ★ 

DECREMENT COUNTER 

918F 

DO 

F8 


58 


BNE 

J5 

★ ★ 

LESS THAN 14 SHIFTS-JUMP 

9191 

20 

97 

91 

59 


JSR 

MOVEL2 

★ ★ 

DOUBLÉ DECREMENT HR/HL 

9194 

18 



60 


CLC 


★ ★ 

SET-UP FOR JUMP 

9195 

90 

ED 


61 


BCC 

J6 

irir 

GO TO COUNTER RESET 


*** SUCCESSFUL ASSEMBLY: NO ERRORS 


Listato 9. Astronave #144 


9000.9025 

9000- 00 OC 00 00 7F 40 03 7F 

9008- 70 07 7F 78 0F 7F 7C 1F 

9010- 7F 7E 39 4C 67 3F 7F 7F 

9018- 0F 7F 7C 03 7F 70 00 7F 

9020- 40 00 1E 00 02 01 

Salvare con: 

BSAVE ASTRONAVE #144,AS9000,L39 


Listato 10: Furgone #146 


9200. 

9259 


9200- 

00 

78 

00 

9208- 

00 

00 

3F 

9210- 

3.F 

00 

OD 

9218- 

1E 

79 

7F 

9220- 

7F 

7F 

40 

9228- 

7F 

7E 

1F 

9230- 

1F 

7F 

7F 

9238- 

7F 

7F 

7F 

9240- 

00 

00 

00 

9248- 

00 

00 

30 

9250- 

38 

18 

00 

9258- 

00 

00 



00 

1E 

00 

01 

7C 

00 

01 

7C 

00 

00 

7D 

7F 

7F 

3F 

3E 

7F 

1E 

3E 

1E 

03 

7E 

1F 

7F 

7F 

7F 

7F 

7F 

7F 

7F 

7E 

7F 

7F 

7E 

0F 

7F 

7E 

00 

00 

60 

18 

00 

70 

18 

00 

00 

18 

00 

00 

00 

00 

00 

00 

00 

00 

78 


Salvare con: 

BSAVE FURGONE #146,AS9200, L91 


87 


















e SHFTL4 la muove a sinistra. Du¬ 
rante la nostra analisi del loro funzio¬ 
namento tenete presente la figura 
3. 

Ecco come funzionano queste rou¬ 
tine. Il formato normale di introdu¬ 
zione di una routine di scambio di 
pagine è sempre consistito nel visua¬ 
lizzare prima la pagina 1 manipolan¬ 
do la pagina 2, poi di scambiare le 
pagine, ripetere il procedimento e u- 
scire dalla routine. Useremo qui que¬ 
sto stesso formato. Le due routine 
funzionano allo stesso modo, e quin¬ 
di usiamo SHFTR4 per vedere che 
cosa fanno. 

Le linee 21-23 predispongono il 
nostro formato visualizzare 1-dise¬ 
gnare 2 e saltano a linea 25. 

Le linee 25-26 spostano la figura 
di due punti a destra (alle stesse coor¬ 
dinate di pagina 1). 

La linea 27 salta a MCVTRR do¬ 
ve il contatore viene decrementato e 
testato per vedere se indichi 14 spo¬ 
stamenti. Se il contatore indica me¬ 
no di 14 spostamenti (in realtà si 
tratta di 14 doppi spostamenti) la 
routine ritorna a linea 28. Se avete 
completato 14 spostamenti saltate a 
MOVER2 dove viene fatto un dop¬ 
pio incremento di HR e HL. Poi il 
contatore viene rimesso a 14 e torna¬ 
te di nuovo a linea 28. 

Le linee 28-30 non fanno che ripe¬ 
tere le azioni di 25-27, lasciando la 
figura di pagina 2 mossa di due pun¬ 
ti davanti alla pagina 1. Le linee 31- 
33 fanno un test per vedere su quale 
pagina stiate disegnando al momen¬ 
to. Se siete a pagina 2 la routine sal¬ 
ta a linea 24, dove avviene lo scam¬ 
bio di pagine, dopo di che scendete a 
eseguire nuovamente le linee 25-30. 

Quando arrivate alle linee 31-33 
sarete questa volta sulla pagina 1 
con la sua figura due punti davanti 
alla pagina 2, e a questo punto usci¬ 
rete dalla routine. 

Come potete vedere SHFTR4 e 
SHFTL4 fanno per voi l'intero scam¬ 
bio di pagine. Le routine MVCTRR 
e MVCTRL non fanno che gestire il 
decremento del contatore, reimpo¬ 
standolo quando sono stati completa¬ 
ti 14 doppi spostamenti, e facendo il 
doppio incremento (o decremento) di 
HR e HL quando occorre. 

Come funziona 
lo scambio di pagine 

Guardiamo l'esempio di figura 
3, dove X indica il punto all'estrema 


destra della figura, per vedere come u- 
tilizzare le routine. 

Per elaborare la figura bisogna di¬ 
segnarla sulla pagina 2 dell'alta riso¬ 
luzione a X=0. Poi si disegna la fi¬ 
gura sulla pagina 1 Hi-Res e la si 
sposta in avanti di due punti a X=2, 
decrementandoilcontatoreperindica- 
re che è stato completato un doppio 
spostamento. 

In questo momento siete nella po¬ 
sizione di partenza appropriata, con 
la figura di pagina 1 due punti davan¬ 
ti alla figura di pagina 2. Per il resto 
del vostro viaggio attraverso lo 
schermo la routine SHFTR4 farà tut¬ 
to quanto occorre per continuare il 
movimento verso destra. 

Al termine del primo loop attraver¬ 
so SHFTR4 il contatore sarà su 5 e 
la figura sarà a 6-pagina 1 e a 4-pagi- 
na 2. Dopo il secondo loop il conta¬ 
tore indicherà 9 e la figura sarà a 1 fi- 
pagina 1 e a 8-pagina 2. Il terzo 
loop finirà con il contatore su 13 e 
la figura a 14-pagina 1 e a 12-pagina 
2. Non appena farete il primo dop¬ 
pio spostamento a pagina 2 durante 
il loop 4 il contatore avrà raggiunto 
14, e a questo punto ci sarà un dop¬ 
pio incremento sia di HR sia di HL. 
Quando completerete il loop 4 il 
contatore indicherà 3 e la figura sarà 
a 18-pagina 1 e a 16-pagina 2. Que¬ 
sta spiegazione del contenuto del 
contatore è inserita per ragioni di 
chiarezza ma non è tecnicamente e- 
satta. In realtà non partiamo da 0 e 
non contiamo fino a 14; partiamo in¬ 
vece da 14 e facciamo un test per ve¬ 
dere quando avremo raggiunto 0. 

Ora che abbiamo esaminato i parti¬ 
colari proviamo a costruire un pro¬ 
gramma che faccia andare il nostro 
autofurgone su e giù attraverso lo 
schermo, e lo inverta all'uno e all'al¬ 
tro capo dello schermo in modo che 
sia sempre rivolto nella direzione 
giusta. Per condurre questa prova do¬ 
vrete aggiungere al driver le routine 
di spostamento e scambio (listato 
6). Per far ciò caricate in memoria 
con BLOAD il listato BLOCK 
ROUTINES, andate in Monitor con 
CALL-151, e inserite in memoria i 
byte del listato 6. Al termine salvate 
il nuovo drive con BSAVE BLOCK 
ROUTINES, A$911AJL$4E6. 

Introducete quindi le linee del pro¬ 
gramma in Applesoft del listato 
7. Dovrete anche creare davanti al¬ 
l'autocarro una nuova tavola delle fi¬ 
gure del camioncino che abbia due 
colonne di byte vuoti davanti alla fi¬ 


gura. Il modo più facile per farlo sa¬ 
rebbe quello di ricaricare il listato 4 
con FURGONE+1 #144, poi ag¬ 
giungere la linea 30 POKE 
254,7:STOP. Una volta che avrete e- 
seguito il programma il vostro fur¬ 
gone sarà sullo schermo e i due byte 
vuoti gli saranno davanti. Allora fa¬ 
te CALL 37729 (la routine SCAN) 
e infine BSAVE FURGONE+2 # 
144,A$9000U120 

Quando avrete fatto girare il pro¬ 
gramma vedrete, come nelle nostre 
precedenti prove, il furgone che si 
muove senza sbalzi avanti e indie¬ 
tro, invertendo direzione di marcia a 
ogni estremità dello schermo. Tene¬ 
te presente che non è necessario che 
la figura sia asimmetrica per usare 
questo metodo di cambio di dire¬ 
zione. 

Vediamo come funziona il pro¬ 
gramma. La linea 10 pulisce entram¬ 
bi gli schermi Hi-Res e predispone 
YTABLE e il numero della figura. 
La linea 20 stabilisce i valori inizia¬ 
li di VT, VB, HR e HL. 

Linea 30: dato che l’ultimo scher¬ 
mo che avete pulito era quello di pa¬ 
gina 2, siete ancora su quella pagi¬ 
na, e quindi disegnate la figura inizia¬ 
le a 0-pagina 2 (figura 2). La linea 
35 chiama CTRSET per inizializza- 
re il contatore dei ioop di sposta¬ 
mento. La linea 40 cambia alla pagi¬ 
na 1 (senza cambiare la pagina che è 
visualizzata), disegna la figura inizia¬ 
le, la muove a destra di due bit (por¬ 
tandola al suo giusto punto di par¬ 
tenza) e decrementa il contatore dei 
loop di spostamento. Osservate che 
siete riusciti a eseguire il doppio 
spostamento a destra e a decrementa- 
re il contator e in u n unico passo ac¬ 
cedendo a SHFTR4 a linea 1280. 

Dovete sempre osservare ogni rou¬ 
tine alla ricerca di punti d’ingresso al¬ 
ternativi, che spesso possono essere 
usati per risolvere problemi speciali. 
Le linee 50-60 gestiscono il movi¬ 
mento della figura per tutto il percor¬ 
so attraverso lo schermo, semplice- 
mente richiamando più e più volte 
SHFTR4. Linea 70: quando arrivate 
a questo punto la figura a pagina 1 è 
spostata a destra di due bit rispetto 
alla sua posizione iniziale nel byte, 
e quindi la dovrete fare arretrare di 
due bit prima di poterla cancellare CE¬ 
RASE) in preparazione dell’inversio¬ 
ne. Ricordate che quando state usan¬ 
do REVDIR con lo scambio di pagi¬ 
ne dovete cancellare la figura su una 
pagina, fame il REVDIR sull'altra 


88 


Listato 11: 

BLOCK ROUTINES completa 


911A.95FF 
911A- A9 
9120- 8F 

0E 

60 

A6 

A9 

FB 

00 

9D 

8D 

6F 

54 

CO 

A9 

9128- 

40 

85 

E6 

60 

A9 

00 

8D 

55 

9130- 

CO 

A9 

20 

85 

E6 

60 

20 

22 

9138- 

91 

18 

90 

03 

20 

2C 

91 

20 

9140- 

0E 

92 

20 

0E 

92 

20 

7A 

91 

9148- 

20 

0E 

92 

20 

0E 

92 

20 

7A 

9150- 

91 

A5 

E6 

C9 

40 

F0 

E5 

60 

9158- 

20 

22 

91 

18 

90 

03 

20 

2C 

9160- 

91 

20 

B5 

91 

20 

B5 

91 

20 

9168- 

8A 

91 

20 

B5 

91 

20 

B5 

91 

9170- 

20 

8A 

91 

A5 

E6 

C9 

40 

F0 

9178- 

E5 

60 

A6 

FB 

DE 

6F 

8F 

DO 

9180- 

08 

20 

AC 

91 

A9 

0E 

9D 

6F 

9188- 

8F 

60 

A6 

FB 

DE 

6F 

8F 

DO 

9190- 

F8 

20 

97 

91 

18 

90 

ED 

A5 

9198- 

FF 

C9 

02 

90 

0E 

C6 

FF 

C 6 

91A0- 

FE 

A5 

FF 

C9 

01 

90 

04 

C6 

91A8- 

FF 

C6 

FE 

60 

E6 

FF 

E6 

FE 

91B0- 

E6 

FF 

E6 

FE 

60 

A5 

FD 

85 

91B8- 

06 

20 

91 

93 

18 

A4 

FE 

A9 

91C0- 

00 

85 

08 

85 

09 

85 

07 

90 

91C8- 

02 

E6 

08 

B1 

26 

C9 

80 

90 

91D0- 

02 

E6 

09 

A5 

08 

F0 

07 

B1 

91D8- 

26 

09 

80 

4C 

E2 

91 

B1 

26 

91E0- 

29 

7F 

6A 

91 

26 

90 

02 

E6 

91E8- 

07 

A5 

09 

C9 

01 

90 

06 

B1 

91F0- 

26 

09 

80 

91 

26 

C4 

FF 

F0 

91F8- 

08 

88 

A5 

07 

C9 

01 

4C 

BF 

9200- 

91 

C6 

06 

A5 

06 

C9 

FF 

F0 

9208- 

04 

C5 

FC 

B0 

AC 

60 

A5 

FD 

9210- 

85 

06 

20 

91 

93 

18 

A4 

FF 

9218- 

A9 

00 

85 

08 

85 

09 

B1 

26 

9220- 

2A 

91 

26 

B0 

02 

90 

02 

E6 

9228- 

08 

C9 

80 

B0 

02 

90 

02 

E6 

9230- 

09 

A5 

08 

DO 

09 

B1 

26 

29 

9238- 

7F 

91 

26 

4C 

44 

92 

B1 

26 

9240- 

09 

80 

91 

26 

C4 

FE 

F0 

09 

9248- 

C8 

18 

A5 

09 

C9 

01 

4C 

18 

9250- 

92 

C6 

06 

A5 

06 

C9 

FF 

F0 

9258- 

04 

C5 

FC 

B0 

B5 

60' 

• 38 

A5 

9260- 

FC 

E5 

E3 

85 

FC 

38 

A5 

FD 

9268- 

E5 

E3 

85 

FD 

60 

18 

A5 

FC 

9270- 

65 

E3 

85 

FC 

18 

A5 

FD 

65 

9278- 

E3 

85 

FD 

60 

A9 

00 

8D 

54 

9280- 

CO 

A9 

40 

85 

E6 

A5 

FC 

C5 

9288- 

E3 

90 

0F 

20 

6D 

92 

20 

2F 

9290- 

93 

20 

5E 

92 

20 

5E 

92 

20 

9298- 

2F 

93 

60 

A9 

00 

8D 

55 

CO 

92A0- 

A9 

20 

85 

E6 

20 

6D 

92 

20 


92A8- 

2F 

93 

20 

5E 

92 

20 

5E 

92 

92B0- 

20 

2F 

93 

60 

A9 

00 

8D 

54 

92B8- 

CO 

A9 

40 

85 

E6 

20 

5E 

92 

92C0- 

20 

2F 

93 

20 

6D 

92 

20 

6D 

92C8- 

92 

20 

2F 

93 

60 

A9 

00 

8D 

92D0- 

55 

CO 

A9 

20 

85 

E6 

20 

5E 

92D8- 

92 

20 

2F 

93 

20 

6D 

92 

20 

92E0- 

6D 

92 

20 

2F 

93 

60 

A9 

00 

92E8- 

85 

FA 

A5 

FD 

85 

06 

20 

91 

92F0- 

93 

A4 

FF 

A2 

00 

Al 

FA 

C9 

92F8- 

7F 

F0 

15 

C9 

01 

90 

11 

86 

9300- 

F9 

4A 

26 

F9 .58 

E0 

07 

90 

9308- 

F8 

4A 

A5 

F9 

90 

02 

09 

80 

9310- 

91 

26 

C8 

E6 

FA 

DO 

02 

E6 

9318- 

FB 

C4 

FE 

90 

D6 

F0 

D4 

C6 

9320- 

06 

A5 

06 

C9 

FF 

F0 

04 

C5 

9328- 

FC 

B0 

C3 

20 

61 

93 

60 

A9 

9330- 

00 

85 

FA 

A5 

FD 

85 

06 

20 

9338- 

91 

93 

A4 

FE 

A2 

00 

Al 

FA 

9340- 

51 

26 

91 

26 

88 

18 

E6 

FA 

9348- 

DO 

02 

E6 

FB 

CO 

FF 

F0 

04 

9350- 

C4 

FF 

B0 

EA 

C 6 

06 

A5 

06 

9358- 

C9 

FF 

F0 

04 

C5 

FC 

B0 

D7 

9360- 

60 

A9 

00 

85 

FA 

A5 

FD 

85 

9368- 

06 

20 

91 

93 

A4 

FE 

A2 

00 

9370- 

B1 

26 

81 

FA 

88 

18 

E6 

FA 

9378- 

DO 

02 

E6 

FB 

CO 

FF 

F0 

04 

9380- 

C4 

FF 

B0 

EC 

C6 

06 

A5 

06 

9388- 

C9 

FF 

F0 

04 

C5 

FC 

B0 

D9 

9390- 

60 

A4 

06 

B1 

CE 

85 

26 

A5 

9398- 

E6 

C9 

40 

DO 

05 

B1 

DE 

85 

93A0- 

27 

60 

B1 

EE 

85 

27 

60 

A9 

93A8- 

80 

85 

CE 

A9 

94 

85 

CF 

A9 

93B0- 

40 

85 

EE 

A9 

95 

85 

EF 

A9 

93B8- 

CO 

85 

DE 

A9 

93 

85 

DF 

60 

93C0- 

40 

44 

48 

4C 

50 

54 

58 

5C 

93C8- 

40 

44 

48 

4C 

50 

54 

58 

5C 

93D0- 

41 

45 

49 

4D 

51 

55 

59 

5D 

93D8- 

41 

45 

49 

4D 

51 

55 

59 

5D 

93E0- 

42 

46 

4A 

4 E 

52 

56 

5A 

5E 

93E8- 

42 

46 

4A 

4E 

52 

56 

5A 

5E 

93F0- 

43 

47 

4B 

4F 

53 

57 

5B 

5F 

93F8- 

43 

47 

4B 

4F 

53 

57 

5B 

5F 

9400- 

40 

44 

48 

4C 

50 

54 

58 

5C 

9408- 

40 

44 

48 

4C 

50 

54 

58 

5C 

9410- 

41 

45 

49 

4D 

51 

55 

59 

5D 

9418- 

41 

45 

49 

4D 

51 

55 

59 

5D 

9420- 

42 

46 

4A 

4E 

52 

56 

5A 

5E 

9428- 

42 

46 

4A 

4E 

52 

56 

5A 

5E 

9430- 

43 

47 

4B 

4F 

53 

57 

5B 

5F 

9438- 

43 

47 

4B 

4F 

53 

57 

5B 

5F 

9440- 

40 

44 

48 

4C 

50 

54 

58 

5C 

9448- 

40 

44 

48 

4C 

50 

54 

58 

5C 

9450- 

41 

45 

49 

4D 

51 

55 

59 

5D 

9458- 

41 

45 

49 

4D 

51 

55 

59 

5D 

9460- 

42 

46 

4A 

4E 

52 

56 

5A 

5E 

94 68- 

42 

46 

4A 

4E 

52 

56 

5A 

5E 


9470- 

43 

47 

4B 

4F 

53 

57 

5B 

5F 

9478- 

43 

47 

4B 

4F 

53 

57 

5B 

5F 

9480- 

00 

00 

00 

00 

00 

00 

00 

00 

9488- 

80 

80 

80 

80 

80 

80 

80 

80 

9490- 

00 

00 

00 

00 

00 

00 

00 

00 

9498- 

80 

80 

80 

80 

80 

80 

80 

80 

94A0- 

00 

00 

00 

00 

00 

00 

00 

00 

94A8- 

80 

80 

80 

80 

80 

80 

80 

80 

94B0- 

00 

00 

00 

00 

00 

00 

00 

00 

94B8- 

80 

80 

80 

80 

80 

80 

80 

80 

94C0- 

28 

28 

28 

28 

28 

28 

28 

28 

94C8- 

A8 

A8 

A8 

A8 

A8 

A8 

A8 

A8 

94D0- 

28 

28 

28 

28 

28 

28 

28 

28 

94D8- 

A8 

A8 

A8 

A8 

A8 

A8 

A8 

A8 

94E0- 

28 

28 

28 

28 

28 

28 

28 

28 

94E8- 

A8 

A8 

A8 

A8 

A8 

A8 

A8 

A8 

94F0- 

28 

28 

28 

28 

28 

28 

28 

28 

94F8- 

A8 

A8 

A8 

A8 

A8 

A8 

A8 

A8 

9500- 

50 

50 

50 

50 

50 

50 

50 

50 

9508- 

DO 

DO 

DO 

DO 

DO 

DO 

DO 

DO 

9510- 

50 

50 

50 

50 

50 

50 

50 

50 

9518- 

DO 

DO 

DO 

DO 

DO 

DO 

DO 

DO 

9520- 

50 

50 

50 

50 

50 

50 

50 

50 

9528- 

DO 

DO 

DO 

DO 

DO 

DO 

DO 

DO 

9530- 

50 

50 

50 

50 

50 

50 

50 

50 

9538- 

DO 

DO 

DO 

DO 

DO 

DO 

DO 

DO 

9540- 

20 

24 

28 

2C 

30 

34 

38 

3C 

9548- 

20 

24 

28 

2C 

30 

34 

38 

3C 

9550- 

21 

25 

29 

2D 

31 

35 

39 

3D 

9558- 

21 

25 

29 

2D 

31 

35 

39 

3D 

9560- 

22 

26 

2A 

2E 

32 

36 

3A 

3E 

9568- 

22 

26 

2A 

2E 

32 

36 

3A 

3E 

9570- 

23 

27 

2B 

2F 

33 

37 

3B 

3F 

9578- 

23 

27 

2B 

2F 

33 

37 

3B 

3F 

9580- 

20 

24 

28 

2C 

30 

34 

38 

3C 

9588- 

20 

24 

28 

2C 

30 

34 

38 

3C 

9590- 

21 

25 

29 

2D 

31 

35 

39 

3D 

9598- 

21 

25 

29 

2D 

31 

35 

39 

3D 

95A0- 

22 

26 

2A 

2E 

32 

36 

3A 

3E 

95A8- 

22 

26 

2A 

2E 

32 

36 

3A 

3E 

95B0- 

23 

27 

2B 

2F 

33 

37 

3B 

3F 

95B8- 

23 

27 

2B 

2F 

33 

37 

3B 

3F 

95C0- 

20 

24 

28 

2C 

30 

34 

38 

3C 

95C8- 

20 

24 

28 

2C 

30 

34 

38 

3C 

95D0- 

21 

25 

29 

2D 

31 

35 

39 

3D 

95D8- 

21 

25 

29 

2D 

31 

35 

39 

3D 

95E0- 

22 

26 

2A 

2E 

32 

36 

3A 

3E 

95E8- 

22 

26 

2A 

2E 

32 

36 

3A 

3E 

95F0- 

23 

27 

2B 

2F 

33 

37 

3B 

3F 

95F8- 

23 

27 

2B 

2F 

33 

37 

3B 

3F 


Checksum del listato 11 

NOME FILE: 

BLOCK ROUTINES 

TIPO: B 


LUNGHEZZA: 

04E6 

CHECKSUM : 

EE 


pagina e infine ridisegnare (DRAW) 
la figura invertita sulla prima pagi¬ 
na. Prima predisponete il disegno su 
pagina 1 (anche qui senza cambiare 
la pagina che è visualizzata). Poi, u- 
sando il punto d'ingresso medio di 
SHFTL4, arretrate la figura di due 
bit, e infine cancellatela. 

La linea 80 riporta a pagina 2 e in¬ 
verte semplicemente la figura. La li¬ 
nea 85 reimposta il contatore dei 
loop di spostamento in preparazione 
del viaggio di ritorno. La linea 90 ri¬ 
commuta a pagina 1, disegna la figu¬ 
ra invertita, e usa il punto d’ingresso 
medio di SHFTL4 per muovere la fi¬ 
gura in avanti di due punti e decre- 
mentare il contatore in preparazione 
per il movimento verso sinistra. 

Le linee 100-110 muovono com¬ 
pletamente la figura attraverso lo 
schermo richiamando ripetutamente 


SHFTL4. Linea 120: questa volta la 
figura è nuovamente spostata di due 
bit dalla posizione di partenza nel 
byte a pagina 1, e perciò predispo¬ 
nete la pagina 1, chia mate il punto 
d'ingresso medio di SHFTR4 per far 
arretrare la figura di due bit e infine 
cancellatela dallo schermo. 

La linea 130 commuta a pagina 2 
e inverte la figura. La linea 140 sal¬ 
ta indietro alla linea 35 che reimpo¬ 
sterà il contatore e ridisegnerà la fi¬ 
gura invertita sulla pagina 1, in mo¬ 
do che possiate ricominciare tutto da 
capo. 

Tenete presente che ci sono molti 
modi per scrivere un programma del 
genere, e che il nostro test è solo u- 
no dei metodi possibili. Per esem¬ 
pio se avrete molte figure impegnate 
in azioni del tipo in cui si inverte al¬ 
ternativamente la direzione di marcia 


può darsi che sia il caso di combina¬ 
re le linee da 70 a 90, o altre simili 
sequenze, in un’unica breve aggiunta 
al driver in linguaggio macchina, 
che svolgerà tutti quei compiti in 
un' unica semplice CALL. Come si 
presenterebbe questo programma di 
prova in una versione interamente in 
linguaggio macchina? Per usarlo do¬ 
vrete avere in memoria il driver, 
FURGONE+2 #144 e il dump esade- 
cimale del listato 8. Per farlo gira¬ 
re è sufficiente introdurre HGR: 
HGR2 e poi fare CALL 2048. 

- \ 

Questo programma è disponibile 
su dischetto. L’elenco, i prezzi 
e le modalità d’ordine di questo 
e degii altri dischetti disponibili 
sono riportati nella rubrica 
Disk Service. 

s J 


® By Nibble e Applicando 


89 









q^lettere 


L'MS Basic 
è andato in tilt 

Mentre stavo correg¬ 
gendo gli errori di copia¬ 
tura sul programma Mac 
graph, apparso sul nume¬ 


ro di marzo, l'MS Basic 
è andato in tilt: il movi¬ 
mento del mouse non a- 
veva alcun effetto sullo 
schermo e così anche le i- 
struzioni mandate trami¬ 
te la tastiera. Di solito in 


questi casi appare la fine¬ 
stra che segnala l'errore 
di sistema, ma inspiega¬ 
bilmente nel mio ciò 
non è avvenuto e dal dri¬ 
ve esterno è stato espul¬ 
so il disco con la registra¬ 
zione di Mac graph; non 
potendo fare altro, ho 
schiacciato il tasto di re¬ 
set. Riprovando a carica¬ 
re il disco dell'MS Basic, 
sullo schermo è apparsa 
l'icona del Mac infelice a 
segnalarmi che il conte¬ 
nuto era stato cancellato 
o reso illegibile (cosa 
che ho poi verificato inse¬ 
rendo prima il disco di si¬ 
stema e poi quello del- 
l'MS Basic, ottenendo co¬ 
me risultato la richiesta 
di inizializzare il disco 
cancellato). Vorrei sapere 
quali possono essere sta¬ 
te le cause di tale fenome¬ 
no (se sono dovute al- 
l'hardware come posso 
porvi rimedio?) e a cosa 
è dovuto l'errore di si¬ 
stema. 

Daniele Mirolo 

Ponzano Veneto (TV) 

E' molto probabile che 
l'inconveniente in cui è 
incorso mentre corregge¬ 
va il suo programma in 
Basic risieda nel fatto di 
aver scritto un program¬ 
ma con delle routine di 
chiamata al toolbox Ma¬ 
cintosh (menù, finestre e 
box) con una versione di 
Basic in cui queste routi¬ 
ne non sono previste; si 
accerti di avere a disposi¬ 
zione la versione MS-Ba¬ 
sic 2.0 o 2.1 per scrivere 
il programma MacGraph. 

Spreadsheet 

Appleworks 

Possiedo il programma 
Apple Works da circa un 
anno, ma finora non mi 
era capitato mai di creare 
un rapporto con il Word 
processor e il foglio elet¬ 
tronico. Così mi sono ac¬ 
corto che quando si copia 
un foglio elettronico sul 


word processor di Apple 
Works, i numeri nel vi¬ 
deo si dispongono in ma¬ 
niera del tutto disordina¬ 
ta. Inizialmente ho pensa¬ 
to che la colpa fosse dei 
parametri di stampa (giu¬ 
stificato e proporzionale- 
1), che ho inserito per 
meglio presentare il testo 
di accompagnamento al 
foglio; eliminandoli però 
non sono riuscito a mi¬ 
gliorare la situazione. Ho 
guardato il manuale ma 
al riguardo non dice nien¬ 
te. Allora ho immesso 
dei trattini per riempire 
gli spazi vuoti fra le voci 
del foglio e i numeri, ma 
non c'è stato verso di 
mettere in colonna tali 
numeri. Un programma 
certamente molto poten¬ 
te, come Apple Works, 
che non permette di rea¬ 
lizzare un bel rapporto 
non vale poi molto. 

Maria Grillo 

Sciacca (AG) 

Il problema del cattivo 
allineamento di tabelle 
contenenti numeri e crea¬ 
te con lo spreadsheet e 
poi riportate nel word 
processor dipende dal fat¬ 
to che lo spreadsheet usa 
come separatore di campi 
un tabulato, per cui sarà 
sufficiente all'interno del 
wordprocessor giustifica¬ 
re a sinistra la parte ine¬ 
rente alla tabella con 10 
caratteri per pollice. 

Non stampa 
i grafici 

Sono un vostro letto¬ 
re da sempre. Il mio pro¬ 
blema è il seguente: 

Ho un Apple Ile con 
un solo drive che recente¬ 
mente ho dotato di una 
stampante Apple Dot Ma¬ 
trix al posto della Silen- 
type. Senonché il pro¬ 
gramma Visiplot che pos¬ 
seggo e che funzionava 
bene con la Silentype, 
con la Dot Matrix non 
stampa più i grafici. Il 


L'angolo 
del reclamo 


Da un lettore di Cuneo giunge questa lettera, 
alla quale risponde la Apple Computer: 

Sono uno studente universitario possessore di 
un favoloso Mac 512/c (N° di serie F50739 
FM0001WP) dal luglio 1985. Purtroppo però sulla 
mia scrivania l'ho visto ben poco! Per ben tre vol¬ 
te infatti (al momento ne sono sprovvisto) è stato 
rispedito alla Apple SpA di Reggio Emilia e tutte e 
tre le volte per lo stesso inconveniente: la stam¬ 
pante (Imagewriter) non riceveva alcun impulso e 
di conseguenza non stampava un bel niente! Cer¬ 
to che la mia non è una diagnosi come si deve, 
però altro non ho potuto sapere dai signori della 
Apple SpA. Ora mi chiedo e chiedo a voi: 

• perche si continua con queste riparazioni certa¬ 
mente provvisorie? 

• forse non si è capito che il guasto è sicuramen¬ 
te più serio, vista la sua quasi periodicità? 

• aspetteranno mica lo scadere della garanzia 
per spillarmi dei quattrini? 

Certo sono deluso e credo di aver già speso ab¬ 
bastanza per questo sfortunato Mac; tanto più 
che pensavo che la stessa cifra di acquisto po¬ 
tesse in un certo senso rappresentare una "ga¬ 
ranzia" di affidabilità. Credendo fermamente nella 
serietà della vostra rivista, gradirei pubblicaste 
questa lettera di reclamo. 

Fabio Turchi 

La vicenda del signor Fabio Turchi fu trattata 
dalla ditta Rossi Computer di Cuneo, rivenditore 
disdettato da Apple il 18/10/85. Al servizio di as¬ 
sistenza di Apple Computer risulta che il Mac¬ 
intosh sia stato inviato a Reagio Emilia solo due 
volte e oltre a tutto che, dopo la prima ripara¬ 
zione effettuata in data 25.9.85, al secondo invio 
delTI/4/86 sia la macchina che la stampante ri¬ 
sultassero perfettamente funzionanti. Non aven¬ 
do riscontrato alcun difetto, i tecnici Apple resti¬ 
tuirono la macchina al rivenditore, avvertendo di 
controllare meglio il software e i cavi di collega¬ 
mento del cliente. E' quindi importante sotto- 
lineare che la maggior parte delle disfunzioni giu¬ 
stamente lamentate dal signor Turchi va ricon¬ 
dotta al fatto che il rivenditore non era in pos¬ 
sesso del materiale di assistenza necessario e 
che non effettuò nessun controllo qualificato sul 
sistema dell'utente verificandone l'installazione. 
E' proprio per evitare disguidi di questo genere 
che Apple Computer invita gli utenti a verificare 
che i rivenditori ai quali si rivolgono siano stati i- 
dentificati quali Apple Center e cioè qualificati 
per assistenza, training, consulenza e software. 



90 



























programma è il Yisplot 
C1981 1.00 Micro Finan- 
ce Systems. Mi potreste 
suggerire quali modifiche 
posso apportarvi, e in 
quali righe, affinché pos¬ 
sa stampare i grafici con 
la Dot Matrix? 

Lidio Faccioni 
Rovigo 

Per risolvere il suo pro¬ 
blema e stampare i grafi¬ 
ci di Visiplot sulla Dot 
Matrix bisogna che lei 
aggiorni la versione LO 
del Visiplot in suo pos¬ 
sesso con la relativa ver¬ 
sione 1.1; per maggiori 
informazioni le consiglia¬ 
mo di rivolgersi al suo ri¬ 
venditore di fiducia. 

Apple, Duodisk 
e ImageWriter 

Uso da qualche tempo, 
senza problemi, Apple- 
Works sul mio sistema 
costituito da Apple Ile + 
Duodisk + Imagewriter. 

Qualche volta però a- 
vrei bisogno di usare lo 
stesso programma su un 
sistema analogo con una 
stampante Epson RX-80. 
Non sono finora riuscito 
a ottenere nessuna stam¬ 
pa malgrado ogni mio 
tentativo (sostituzione 
del file SEG.PR, invio 
di codici speciali) e mal¬ 
grado nel manuale si af¬ 
fermi che tale stampante 
è supportata dal program¬ 
ma. Mi è stato detto che 
la colpa di questa situa¬ 
zione è dell'interfaccia u- 
sata (Epson). Gradirei un 
vostro parere in merito. 

Dott. Giampaolo 
Piaserico 
Montebelluna (TV) 

Purtroppo quanto le 
hanno detto corrisponde a 
verità: non può stampare 
con Apple Work su una 
Epson RX-80 a causa del¬ 
l’interfaccia della Epson; 
le consigliamo di rivol¬ 
gersi agli uffici tecnici 
Apple o Epson-Segi. 



Compilatore 
per il Pro-DOS? 

Desidero sapere se esi¬ 
ste un compilatore per il 
ProDos e routine di NO- 
COPY per tale sistema o- 
perativo. 

In caso affermativo vi 
prego di comunicarmi 
prezzi e punti vendita. 

A. Tommasini 
Itri (LT) 

Al momento non risul¬ 
ta disponibile sul merca¬ 
to un compilatore in Pro¬ 
Dos, né tanto meno una 
routine NO-Copy. 

Oroscopo 
e Golf 

Ho acquistato presso di 
voi due dischetti che mi 
danno dei problemi: 

1) Programma Orosco¬ 
po: dopo l’esecuzione del 
calcolo delle case, i suc¬ 
cessivi si bloccano, dan¬ 
do indicazione di errore 
(division by zero, illegal 
quantity error ecc.). 

2) Programma Golf: u- 
tilizzando il percorso in¬ 
serito nel programma, il 
gioco si blocca al mo¬ 
mento del lancio della 
pallina. Il problema peg¬ 
giora digitando personal¬ 
mente il listato da voi 
pubblicato: in questo ca¬ 
so le buche da me dise¬ 
gnate non vengono addi¬ 
rittura visualizzate. Vor¬ 
rei spiegazioni e con¬ 
sigli. 

Gianfranco Rizzi 
Milano 

/ due programmi fun¬ 
zionano in tutte le loro 
opzioni e il listato del 
programma Golf pubbli¬ 
cato sulla rivista è giu¬ 
sto. Tuttavia nella dupli¬ 
cazione dei dischetti in 
suo possesso potrebbe es¬ 
sere avvenuto qualche in¬ 
conveniente. Ce li rispe¬ 
disca e le verranno sosti¬ 
tuiti con copie perfetta¬ 
mente funzionanti. 


** Mercatino delle Mele «* 

• VENDO stampante Scribe come nuova correda¬ 
ta di 3 nastri e manuale originale per passaggio 
a Image Writer II. L. 300.000 Trattabili. Spedi¬ 
zione in contrassegno. Giuseppe Carollo - C.P. 
2017 c/o Succursale 10, 74100 Siracusa. Tel. 
099/333438 ore pasti. 

• VENDO Apple He + monitor + supporto moni¬ 
tor + drive aggiuntivo + mouse + stampante Ima¬ 
ge Writer in blocco a L. 4.500.000 trattabili. Re¬ 
galo molti programmi (tra cui Tre x Te, Pinpoin- 
t, Apple Writer, Dossier). Vendo separatamente 
drive aggiuntivo da 140K a L. 450.000. Giovan¬ 
ni Zanuso (Calzature), Via A. Diaz 8r - 17048 
Valleggia (SV). Tel.019/882508 ore pasti. 

• CERCÒ possessori di Apple He e He per 
scambiare programmi di ogni tipo (grafici, utili¬ 
tà, giochi ecc.) preferibilmente zona Vicenza. 
Massimo Garzotto, Via False 4, - 36050 Monte- 
viale (VI). Tel.0444/552201. 

• VENDO o scambio manuali in italiano per I- 
BM - PC e compatibili. Annuncio sempre valido 
vendo monitor Philips F.V. con AV010, perfet¬ 
to, L. 150.000. Roberto Gazzaniga, Via Cavour 
13 - 27055 Rivanazzano (PV). Tel.0383/92354. 

• VENDO Apple De 128K, 2 drive, stampante 
grafica, monitor, magnifico software (Apple Wor¬ 
ks, Apple Writer, Prodos, Pascal, Graphworks, 
Compilatore, Tasc, giochi, Utilities, copiatori, 
Las One, Jane Guttemberg, S argon, Pilot, ecc.) a 
L.3.200.000. Fabio Mora, Via Cantore 14/11 - 

16149 Genova. Tel.010/468515. 

• COMPRO programmi per Macintosh e Apple 
II. Per Mac acquisto qualsiasi accessorio, 2° dri¬ 
ve, Image Writer E, trasformazione da 512 a 
Plus. Acquisto Apple II e Apple Ile + qualsiasi 
accessorio. Italico Pitassi, Via Borromeo 4, 
35100 Padova. Tel.049/26974. 

• VENDO Apple He con tastiera, monitor con 
supporto, stampante Image Writer, mouse, Hand 
Controller, Joystick, visore a cristalli liquidi, 
borsa e numerosi dischetti: Appleworks, Logo... 
ecc. -I- serie completa di Applicando e numerosis¬ 
simi dischetti vergini, causa passaggio a sistema 
superiore. Maurizio Barberis, Via Villadeati 6, 
10135 Torino. Tel.011/6199287 ore pasti. 

• SVENDO causa passaggio sistema superiore 
Apple Uè + video professionale Philips 12" fo¬ 
sfori gialli + floppy-disk originale con control¬ 
ler (anch esso originale), il tutto perfettamente 
funzionante e in ottime condizioni. Accertata se¬ 
rietà, prezzo di vero realizzo, regalo scheda inter¬ 
faccia stampante e moltissimi volumi per solo 
Apple Ile, solo se interessati telefonare. Ignazio 
De Gregorio, Via Cofano 63 - 91100 Trapani. 
Tel.0963/20650 ore pranzo. 


OCCASIONE vendiamo Apple Ile, 
completo di borsa e mouse, a lire 
1.450.000, Macintosh 512K, com¬ 
pleto di software, a lire 3.500.000, 
più svariati accessori Apple e Apple 
compatibili a prezzi interessanti. 
Contattare SYMIC, Via delle Regio¬ 
ni 34, Segrate (Milano). Telefono 
02 2130450. 




91 








ìhelp 


ImageWriter e caratteri alternativi 

Con un semplice programma è possibile creare un 
set di caratteri personali utilizzabili in alternativa ai 
caratteri standard, che rimangono sempre a disposizio¬ 
ne). Per costruire i caratteri alternativi occorre seguire 
la seguente procedura: 

1. Definire il carattere alternativo e il carattere 
standard che lo rappresenta; il carattere alternativo de¬ 
ve essere inserito in una matrice a 8 righe e 8 colon¬ 
ne al massimo con una procedura, oppure 16 colonne 
al massimo utilizzando una seconda procedura. 

I caratteri standard rappresentativi di quelli nuovi 
possono essere anche tutti quelli compresi tra i valori 
32 e 127 della tabella ASCII nel caso della procedura 
a 16 colonne (tutti i caratteri stampabili), oppure tra 
i valori 32 e 111 della tabella ASCII nel caso della 
procedura a 8 colonne (simboli, numeri, lettere maiu¬ 
scole e lettere minuscole fino alla -o-). 

2. Ricavare i caratteri decimali ai quali corrispon¬ 
de ogni colonna; a ogni punto vuoto (bianco) corri¬ 
sponde uno zero (0) e a ogni punto pieno (nero) cor¬ 
risponde un uno (1); si ricava così un valore binario, 
e da questo il relativo valore decimale corrispondente 
(figura a fondo pagina). 

3. Scrivere una routine che esegua le seguenti o- 
perazioni: 

Abilitare la stampante allHitilizzo degli 8 BIT (solo 
nel caso di matrici a 16 colonne). 

• Inviare alla stampante il carattere di controllo "ESC - 

" (escape meno) per la procedura con i caratteri fino 
a 8 colonne, o "ESC +" (escape più) per la procedura 
fino a 16 colonne. 

• Inserire i caratteri in forma DECIMALE nella for¬ 
ma ESC I (escape I) <lista>. Nella <lista> per ogni 
carattere inserito occorre mettere: 

- carattere standard rappresentativo del nuovo; 

- numero di colonne per quel carattere, rappresenta¬ 
to da una lettera maiuscola dell'alfabeto, dalla "A" al¬ 
la "P" (K e J comprese) corrispondenti ai numeri di 
colonne 1-16; 

- codice decimale di ogni colonna grafica. 

• Inviare il carattere "CTRL-D" alla stampante, come 
fine lista (EOT). 


Nelfinserire i caratteri di controllo e di definizione 
dei caratteri alternativi, occorre inviare i dati diretta- 
mente nella locazione di output dell’interfaccia seriale 
collegata alla stampante, tramite l'istruzione: 

POKE loc.output,val.numerico. 

Questo metodo si rende necessario in quanto i dati 
inviati con l’istruzione PRINT vengono considerati 
sempre con Tottavo bit a uno e quindi si perde¬ 
rebbe il valore dell'ottava riga. 

Eseguita la routine, il set di caratteri alternativo vie¬ 
ne attivato con il comando " ESC ' ", mentre con "E- 
SC $" si abilita la stampante per utilizzare il set dei 
caratteri standard.il procedimento è valido sia in am¬ 
biente DOS che ProDos. 

Questo breve listato dimostrativo è relativo al carat¬ 
tere della figura 1: 


10 

ESC$=CHR$(27): PRINT CHR$(4) "PR#!" 


15 

PRINT ESC$;"Z";CHR$(0);CHR$(32); : REM Abilita 


la stampante all'utilizzo di 8 BIT 


20 

FOR I = 1 TO 21 


30 

READ X 


40 

POKE49304,X: REM Locazione di OUTPUT per la 

SU 

PER SERIAL CARD nello SLOT 1 


50 

NEXT I S ' ' ' " ' 


60 

PRINT ESC$;" ' ": REM Selezione caratteri 

AL- 

TER 

NATIVI - 


65 

PRINT "W": REM Stampa CARATTERE ALTERNATIVO 

70 

PRINT ESC$; REM Selezione dei caratteri 


STANDARD 


75 

PRINT "W": REM Stampa CARATTERE STANDARD 


80 

REM Lista valori inviati alla stampante 

(ca- 

rat 

teri di controllo e dati sul font) 


90 

DATA 27, 43, 21, 73 


100 

DATA 87, 74, 0, 126, 36, 24, 36, 66, 66, 

36, 


24, 0 


110 

DATA 4, 27, 68, 0, 32 


120 

PRINT CHR$(4) "PR#0" 



Tutti i valori inviati alla stampante dopo l'abilita¬ 
zione all'utilizzo dell’ottavo BIT vengono mandati di¬ 
rettamente all'interfaccia tramite l’istruzione POKE 
49304,X perché tutti i dati devono essere di otto bit. 

I valori alla linea 90 sono "ESC + " ed "ESC I", ri¬ 
spettivamente "DEFINIZIONE CARATTERI AL¬ 
TERNATIVI 16 col." e " INIZIO LISTA". 

I valori alla linea 100 sono il carattere da sostituire 
(CHR$(87)=W), il numero di colonne da cui è compo¬ 
sto (CHR$(74)=J), e i valori decimali delle colonne. 

I valori alla linea 110, sono il carattere di "FINE 
LISTA", e i valori per abilitare la stampante a 7 bit. 



Colonna 

Val.Binario 

Val.Esadecimale 

Val. Dee. 

1 

00000000 

$00 

0 

2 

01111110 

$7E 

126 

3 

00100100 

$24 

36 

4 

00011000 

$18 

24 

5 

00100100 

$24 

36 

6 

01000010 

$42 

66 

7 

01000010 

$42 

66 

8 

00100100 

$24 

36 

9 

00011000 

$18 

24 

10 

00000000 

$00 

0 


92 



















































(30§Csservice 


Listati senza fatica 


Tutti i programmi di Applicando possono essere trascritti e quindi salvati su 
dischetto. Ma la trascrizione è lenta e noiosa, e sbagliare fin troppo facile. Ecco 
perché Applicando offre, già pronti, i dischetti con i programmi autoguidati 
(cioè con le istruzioni), sia per Apple II, sia per Macintosh: per ottenerli, è 
sufficiente inviarci il tagliando (pubblicato nell'ultima pagina) debitamente 
compilato. Chi vuole risparmiare non perda la favolosa offerta dell' 
abbonamento al Disk Service e invii subito il tagliando di pagina 129. 


APPLICANDO 1 

AP1/I02 Profitti. In tempo reale l'anali¬ 
si del break-even point, punto di pareg¬ 
gio di un’azienda. Calendario perpe¬ 
tuo. Dal 1582 in poi tutto quello che si 
può sapere sui giorni passati e futuri. I 
tronchi del tesoro. Una spericolata 
caccia al tesoro a nuoto, tra le insidie 
di tronchi galleggianti. Lire 30.000. 

AP1/N03 Eliminatore di Dos. Uno 

strumento per aumentare del 10% la ca¬ 
pacità di un normale floppy disk. Orolo¬ 
gio. Per trasformare l'Apple II in un oro¬ 
logio con rintocchi, allarme e lancetta 
dei secondi. Pronti puntare fuoco! 
Guardiano di un castello abbandonato, 
hai 25 colpi da sparare contro gli intru¬ 
si. Lire 30.000. 


APPLICANDO 2 

AP2/IN04 Costi chilometrici auto. 

Un programma per calcolare e confron¬ 
tare i costi di qualunque auto. Richia- 
mafigure. Posizionare, ingrandire, 
ruotare, cambiare colore, aggiungere fi¬ 
gure a quelle di una tavola. Laser nel¬ 
lo spazio. Battaglia a colpi di laser 
contro asteroidi e alieni per difendere la 
torretta spaziale. Lire 30.000. 


APPLICANDO 3 

AP3/IN05 Sistema base. Un data ba¬ 
se modulare con tutte le caratteristiche 
essenziali per mettere ordine nei propri 
archivi. Etichette. Etichette spirito¬ 
se e bizzarre, di lavoro o di ogni gene¬ 
re, stampate facilmente e nel numero 
desiderato. Contratti. Con il WPL, il 
linguaggio di programmazione dell’Ap¬ 
ple Writer, bastano cinque minuti per 
un documento di più pagine personaliz¬ 
zato. Gran catalogo. Una routine 
per avere il catalogo del dischetto su 
due colonne, 42 file per volta, e ri¬ 
chiamarli con un solo tasto. Lire 
30.000. 

AP3/A06 Equo canone (occorre Visi- 
cale). In Visicalc un modello che per¬ 


mette, a inquilini e proprietari, l'esatto 
calcolo dell'equo canone. Lire 25.000. 


APPLICANDO 4 

AP4/N07 Lettura sprint (versione ita¬ 
liana e versione con frasi in inglese). 
Un reading improver per leggere di più a 
parità di tempo. Rompiquindici. Il pic¬ 
colo rompicapo delle quindici pedine da 
ordinare nei sedici spazi a disposizio¬ 
ne. Tastierino fantasma. Una routi¬ 
ne per avere a disposizione un tastieri¬ 
no numerico anche sull'Apple II. Routi¬ 
ne di input. Due subroutine, una per 
i dati numerici, l’altra per gli alfanumeri¬ 
ci, per il controllo dell'input. Lire 
30.000. 

AP4/A09 Organo, violino, piano¬ 
forte (dischetto Pascal, occorre lan- 
guage card o Apple Ile o Ile). Ecco co¬ 
me, col Pascal, si riesce a simulare i 
tre strumenti attivando l'altoparlante 
dell'Apple da programma. Lire 30.000 


APPLICANDO 5 

AP5/N08 Investor. In tempo reale il 
quadro esatto di come vanno i propri in¬ 
vestimenti finanziari. Con cinque pro¬ 
spetti riepilogativi e 52 periodi di quota¬ 
zione, Investor è uno dei programmi più 
completi in questo settore e in assoluto 
il più economico. Lire 70.000. 

AP5/N09 Agenda personale. Per ri¬ 
cordare ora per ora gli appuntamenti di 
un anno intero memorizzando fino a 15 
appunti ogni giorno. Duello d'arti¬ 
glieria. Vince chi sa calcolare meglio 
la velocità del vento, la gittate e l'eleva¬ 
zione della canna. Mele e freccet¬ 
te. Versione computerizzata del popo¬ 
lare gioco delle freccette che nulla to¬ 
glie al gusto del far centro. Lire 30.000. 


APPLICANDO 6 

AP6/N10 Obbligazioni/Bond Ma¬ 
nager. Per avere un quadro completo 
e concreto dei rendimenti dei titoli a red¬ 


dito fisso. PucMan/Nibbler. Versio¬ 
ne in alta risoluzione per Apple del fa¬ 
moso videogame a gettone. Line fin- 
der. Letteralmente trova righe; questa 
utility permette di localizzare facilmen¬ 
te i segmenti di un programma. Lire 
30.000. 

AP6/N11 Stress. In Pascal (occorre 
language card o Apple Ile o Ile). Per 
giocare, ma soprattutto per inventare 
giochi, il programmasi pone in alternati¬ 
va agli usuali videogame. Lire 55.000. 

APPLICANDO 7 

AP7/N12 Apple pittore. Si possono 
realizzare sullo schermo capolavori di 
pittura, ottenendo effetti speciali di 
grande efficacia. Ottovolante. Un tu- 
torial per insegnare ai bambini a ricono¬ 
scere i numeri che rimbalzano sullo 
schermo. Diskblock. Una routine che 
permette di evitare che qualche curio¬ 
so possa avere libero accesso in pro¬ 
grammi riservati. Archivio per Ap¬ 
ple. Per avere un back-up dei program¬ 
mi più importanti da dischetto a casset¬ 
ta o viceversa. Discoteca. Una ban¬ 
ca dati che tiene sotto controllo la colle¬ 
zione di LPe cassette. Aiuto. Alla fine 
della battitura di un programma, Aiuto 
vi dirà quanti errori ci sono e a quali li¬ 
nee. Lire 30.000. 

APPLICANDO 8 

AP8/N13 Cambiacomandi/Messag- 

gi. Un programma che insegna come 
personalizzare i messaggi propri del 
Dos dell'Apple. Le Mans. Un gran pre¬ 
mio di formula uno da giocare in due o 
da soli contro il computer. Appleorga- 
no. Ecco come trasformare Apple// in 
un melodioso organo. Lire 30.000. 

AP8/T14 Momento di una for- 
za/Colpo all'asta. La dimostrazio¬ 
ne didattica del ribaltamento di un cor¬ 
po solido appoggiato a un piano quan¬ 
do viene applicatala forza orizzonta¬ 
le che supera il momento in senso oppo¬ 
sto dovuto al peso. Hard copy pagi¬ 
ne in alta risoluzione. Se la stam- 


93 










éMsservice 


pante è compatibile con questo pro¬ 
gramma si possono far miracoli. Lire 
30.000. 


APPLICANDO 9 

AP9/N15 Fuoco fatuo. Un appassio¬ 
nante adventure game con un percorso 
intricatissimo, mille trabocchetti, un 
troll e una principessa. Apple arti¬ 
sta. Per destreggiarsi nella grafica ad 
alta risoluzione usando lo schermo co¬ 
me tavolozza e la tastiera come pennel¬ 
lo. Data hello. Una semplice routine 
che permette di disporre di una clock 
card inizializzando i dischetti con gior¬ 
no, mese e anno. Lire 25.000. 

AP9/T16 Sistema di forze paralle¬ 
le. Fissandone l'intensità e la posizio¬ 
ne, questo programma permette di vi¬ 
sualizzare il centro di un sistema di for¬ 
ze sotto forma numerica e grafica. Tra¬ 
slazione e rotazione di una figu¬ 
ra piana. Come far ruotare, traslare, 
rimpicciolire, ingrandire sul video una fi¬ 
gura piana. Lire 30.000. 

applicando io 

AP10/N14 Ripristino. Come ripristi¬ 
nare programmi persi per un'accidenta¬ 
le istruzione di New o di Fp. Disk 
Map. Un detective del Dos per scopri¬ 
re dove e come vengono immagazzina¬ 
ti i dati analizzando la mappa dei bit oc¬ 
cupati. Autonumber. Una routine per 
autonumerare automaticamente i pro¬ 
grammi. Lire 30.000. 

AP10/T17 Rette nel piano carte¬ 
siano. Come individuare in cinque mo¬ 
di diversi una coppia di rette in un piano 
cartesiano e avere visualizzate le e- 
quazioni relative ai piani assegnati. 
Statistica. Come analizzare la corre¬ 
lazione tra due fenomeni mediante 
l'indice di Bravais. Lire 30.000. 

APPLICANDO 11 

AP11/N18 Apple edicola. Una ban¬ 
ca dati per avere sotto controllo un arti¬ 
colo, il suo numero di pagina, la rivista 
su cui è stato pubblicato. Disk Zap. Il 
programma indispensabile per il debug¬ 
ging. Messaggi personali. Quando 
la persona non c'è basta lasciarle un 
messaggio in Apple//. Comparatore 
di programmi. Per risolvere dubbi sul¬ 
le diverse versioni dello stesso pro¬ 
gramma in basic. Trappola per po¬ 
chi. Un cacciatore contro tre animali fe¬ 
roci. Vince chi riesce a intrappolare 
senza essere intrappolato. Lire 
30.000. 

AP11/T19 Espressioni. Come risol¬ 
vere un piccolo dramma familiare con 
l'aiuto di un elaboratore personale. Lire 
25.000. 

APPLICANDO 12-13 

API 2/N20 Bridge. Un programma in 
altissima risoluzione grafica che per¬ 
mette di imparare il bridge o di giocarlo 
contro il computer. Microcalc. Un fo¬ 


glio elettronico di calcolo che mette a di¬ 
sposizione 20 righe per 20 colonne, per 
un totale di 400 caselle da riempire co¬ 
me si vuole. Applesoft Line Edi¬ 
tor. Una potente utility che permette 
l'editing dei programmi in Applesoft e 
aggiunge all’Apple un più ampio control¬ 
lo oel cursore. Lire 30.000. 


Bridge AP12/N20 

Per imparare a giocare 
a bridge o per esercitarsi 
giocando contro il computer 


AP12/A21 Budget (occorre Applewor- 
ks). Un prospetto che con l'inserimento 
di dati mensili e di medie preventive cal¬ 
cola automaticamente le medie consul¬ 
tive e i relativi saldi mensili e annui. Lire 
20 . 000 . 

AP12/A22 Budget (occorre Visicalc). 
Un prospetto che con l'inserimento di 
dati mensili e di medie preventive calco¬ 
la automaticamente le medie consunti¬ 
ve e i relativi saldi mensili e annui. Lire 
20 . 000 . 

AP12/T25 Animazione di una rota¬ 
zione tridimensionale. Un esem¬ 
pio di come una rotazione tridimensio¬ 
nale permette di rappresentare gli og¬ 
getti proprio come li vediamo. Trasfor¬ 
mazione da File a Data. Una utility 
per risolvere il problema di aggiungere 
a un programma preesistente delle i- 
struzioni DATA ricavate da un altro file. 
Lire 25.000. 

APPLICANDO 14 

AP14/N26 Golf. Un programma in altis¬ 
sima risoluzione grafica che permette 
di disegnare il proprio percorso di golf 
per poi giocarci a piacimento. Auto¬ 
più. Per non dimenticare più gli appun¬ 
tamenti fissi dedicati alla manutenzio¬ 
ne della vostra automobile. Lire 
20 . 000 . 

AP14/N27 Applebaby. Tre giochi di¬ 
dattici: imparare a contare in età pre¬ 
scolastica, ripassare le tabelline, eser¬ 
citarsi nell'ortografia. Lire 25.000. 

AP14/A28 Rimborso spese (occorre 
Appleworks). Un prospetto che permet¬ 
te di preparare le vostre note spese au¬ 
tomaticamente. Lire 20.000. 

AP14/A29 Rimborso spese (occorre 
Visicalc). Un prospetto che permette di 
preparare le vostre note spese automa¬ 
ticamente. Lire 20.000. 

AP14/T30 Frutteti. Un aiuto a risolve¬ 
re uno dei più classici problemi di esti¬ 
mo. Instant Poster. Scrivete la fra¬ 
se che volete, e subito dalla stampante 
esce un poster gigante. Lire 20.000. 

APPLICANDO 15 

AP15/N31 Sintetizzatore di suo¬ 


ni. Dotate i vostri lavori di una colonna 
sonora eccezionale: dal canto dell'uc¬ 
cellino alla mitragliatrice, dal treno in 
corsa all'aereo. Volano. Un gioco in al¬ 
ta risoluzione per due sfidanti. Illu¬ 
stratore. Un programma di grafica 
che offre la possibilità di realizzare otti¬ 
mi disegni anche a chi non è molto 
dotato. Autoschermo. Crea in auto¬ 
matico menù altamente professionali 
(come quelli di Appleworks) da inserire 
nei vostri programmi. Lire 30.000. 

AP15/A32 Computer cuisine. Un ri¬ 
cettario computerizzato sul quale me¬ 
morizzare ingredienti e ricette a centi¬ 
naia. Con possibilità di stampa delle sin¬ 
gole ricette e con un menù completo 
dei migliori piatti creati da Gualtiero Mar¬ 
chesi, il più famoso cuoco d'Italia. Oc¬ 
corre scheda 80 colonne. Lire 20.000. 

AP15/T33 Euclide. Il massimo comu¬ 
ne divisore e il minimo comune multiplo 
in un programma che ne permette l'im¬ 
mediata comprensione. Isomeri. Fa 
parte del più ampio progetto americano 
Seraphim, per lo studio della chimica. 
Lire 20.000. 


APPLICANDO 16 

AP16/N34 Dieta personalizzata. 

Un pratico sistema di data base nutri¬ 
zionale, con il quale è possibile perso¬ 
nalizzare, a seconda della propria costi¬ 
tuzione fisica e delle abitudini alimenta¬ 
ri, una dieta bilanciata, a lungo o a bre¬ 
ve termine. Il dischetto contiene un file 
dati di 400 cibi, la cui composizione è a- 
nalizzata in calorie, proteine, grassi, vi¬ 
tamine e colesterolo. Lire 30.000. 

AP16/N35 Designer. Il concetto dei 
potenti e costosi programmi di 
CAD/CAM alla portata dell'Apple//, per 
fare del computer uno strumento semi¬ 
professionale per disegnare. Il gioco 
dei pompieri. E' scoppiato un incen¬ 
dio, e voi siete un pompiere che deve 
salvare il maggior numero di persone 
prima che muoiano soffocate tra le fiam¬ 
me. Per listare bene in vista. Se 
nel programmare avete preferito la com¬ 
pattezza alla chiarezza, avete bisogno 
di questo programma. Timer. Un fede¬ 
le e preciso contasecondi che avverte 
del passare del tempo, e al momento 
giusto... Lire 30.000. 

AP16/N36 Cento One-liner. Utili¬ 
ties, routines, dimostrativi di grafica e 
di suoni, e perfino giochi. Cento pro¬ 
grammi su un solo dischetto, tutti rigo¬ 
rosamente scritti in una sola linea di Ba¬ 
sic. Da usare cosi come sono, da stu¬ 
diare come esempi di sintesi, o da tra¬ 
sferire nei vostri programmi. Lire 
30.000. 

AP16/N37 Rubrica telefonica (oc¬ 
corre Appleworks). Un’agenda telefoni¬ 
ca che individua in tempo reale qualun¬ 
que numero memorizzato, che stampa 
le etichette per spedire gli auguri, e 
stampa elenchi su carta da distribuire 
aggiornati ogni mese ai collaboratori. Li¬ 
re 15.000. 


94 









APPLICANDO 17 

AP17/N38 Strade d'America. Pianifi¬ 
ca un qualunque itinerario stradale ame¬ 
ricano tra ben 171 città diverse, fornen¬ 
do le sigle delle strade da percorrere, 
l'elenco delle città intermedie e i calcoli 
della distanza in miglia dei tratti interme¬ 
di e totali. Uragano. Su una piccola cit¬ 
tà indifesa una tempesta si abbatte im¬ 
placabile: distruggerà tutto. A meno 
che... Gioco ad altissima risoluzione 
grafica. Lire 30.000. 


Dieta AP16/N34 

Un pratico sistema di 
data base nutrizionale 
con il quale avrete la 
possibilità di personalizzare 
una dieta bilanciata 


AP17/N39 Regress. Ideale per mani¬ 
polare dati con funzioni statistiche, 
con la possibilità di chiedere previsioni 
in base all'andamento della regressio¬ 
ne sui dati inseriti. Calcolatrice 
RPN. Con questo programma l'Apple 
diventa una sofisticata calcolatrice 
che impiega per l'input la notazione po¬ 
lacca inversa, con una catasta operati¬ 
va di quattro registri. Sparate a vi¬ 
sta. Siete appostati contro un muro e 
comandate un potente cannone. Dal 
cielo fluttuano oggetti che dovete 
colpire. Ma un avversario con un altro 
cannone... Lire 30.000. 

AP17/A40 I conti del negozio (oc¬ 
corre Appleworks). Questo modello di 
spreadsheet è utilissimo per seguire 
l'andamento giornaliero e mensile di un 
negozio. Per ogni movimento di cassa 
è possibile memorizzare causale e tipo 
di pagamento. Il computer calcola i tota¬ 
li per ogni voce e indica qual è stato il 
movimento di cassa della giornata, te¬ 
nendo conto degli ordini e dei saldi per 
impegni precedenti, elabora i dati suddi¬ 
visi per categoria merceologiche e cal¬ 
cola le percentuali di ripartizione degli u- 
tili su ogni articolo. Lire 50.000. 

AP17/A41 I conti del negozio (oc¬ 
corre Visicalc). Come AP17/A40, ma 
con Visicalc. Lire 50.000. 


APPLICANDO 18 

AP18/N41 Trivia. Una versione per Ap¬ 
ple II, del gioco Trivial Pursuit, però per¬ 
sonalizzabile e quindi utile anche per 
studiare o ripassare. Bioritmi. Con 
questo programma si può seguire l'an¬ 
damento dei propri bioritmi: tutti e tre i 
cicli, mese per mese. Occhio ai con¬ 
sumi. Invece di annotare diligentemen¬ 
te la percorrenza in chilometri e i litri di 
carburante consumato e poi fare i relati¬ 
vi calcoli... Lire 30.000. 

AP18/N42 Regolatore del bip. Un 


programma per regolare a piacimento il 
volume del beep dell'Apple Ile. Compa¬ 
ratore di grafici. Ecco come 
comparare le curve disegnate da 
funzioni diverse. Impaginatore di 
messaggi. Scritte perfettamente cen¬ 
trate sia sul video che sulla stampante, 
senza fatica. Utility per Pro DOS. 
Prefix, Subdirectory, Pathname? Sono 
termini che bisogna conoscere per pro¬ 
grammare in ProDOS. Questa utility aiu¬ 
terà a capire e imparare con facilità. Li¬ 
re 30.000. 


APPLICANDO 19 

AP19/N43 Oracolo. Comperare una 
casa? Cambiare lavoro? Concludere o 
no quell'affare? Il primo programma di ti¬ 
po decision maker disponibile in Italia. 
Digger. A differenza dei giochi di labi¬ 
rinto di tipo tradizionale, Digger chiede 
di risolvere dei rompicapo spaziali, e la 
prontezza di riflessi non è tra i fattori 
del gioco... Claustrofobia. Questo 
gioco in alta risoluzione, pacifista nei ri¬ 
sultati, ma non nei metodi, mette alla 
prova l'abilità del giocatore. Ma atten¬ 
zione che non vi incastrino, perché sof¬ 
frite di claustrofobia... Gestione 
puntatori. Volete caricare in memoria 
un programma in Applesoft al di sopra 
di questo o quel codice in linguaggio 
macchina? Magari aggirando la memo¬ 
ria di schermo in alta risoluzione? O ad¬ 
dirittura in cima a un codice ormai servi¬ 
to al suo scopo in un programma che 
sta girando? Ò annullare un FP battuto 
pererrore? Con questo programma, tut¬ 
to è possibile. Grafica in doppia ri¬ 
soluzione. Tre routine in Basic e una 
in Assembler che vi permetteranno di 
creare prorammi in doppiaalta risoluzio¬ 
ne con 16 colori. Sei soluzioni. Il pro¬ 
gramma, proposto nell'ambito del Pro¬ 
getto Seraphim, è un test che consiste 
nel presentare allo studente quantità li¬ 
mitate di un certo numero di soluzioni in 
provette numerate. Lo studente cono¬ 
sce le sostanze presenti e deve, usan¬ 
do esclusivamente le soluzioni a dispo¬ 
sizione, identificare il contenuto di cia¬ 
scuna provetta. Lire 30.000. 


APPLICANDO 20 


AP20/N44 Salute. Vaccinazioni, ma¬ 
lattie, analisi, terapie e soprattutto co¬ 
sti a non finire. Come ricordare tutto, re¬ 
gistrare e listare le spese mediche di 
tutti i familiari? E al momento di pagare 
le tasse... Variabili. Con questa utility 
in Applesoft potrete visualizzare i 
valori delle variabili per un'efficace 
individuazione degli errori di un 
programma. Grafica. Che cosa sono 
le figure a blocco? Perché è importante 
farne la conoscenza? Per chi possiede 
l'Apple Ilo o il Ile con scheda 80 colon¬ 
ne continua l'entusiasmante viaggio 
nel mondo dell'altissima risoluzione. Si¬ 
mulazione di un equilibrio. Un so¬ 
ftware didattico del progetto Seraphim 
che crea la simulazione al computer di 
un problema di equilibrio. Lire 30.000. 


AP20/N45 Oroscopo. Scientificamen¬ 
te fondato, permette la creazione di u- 
na carta del cielo natale che nulla invi¬ 
dia ai grafici tracciati dai professionisti. 
E le tabelle con latitudini, longitudini, fu¬ 
si orari eccetera? Ci sono, ci sono... 
Voce. Ora non gli manca più la parola: 
con questa routine in linguaggio mac¬ 
china Apple//può finalmente pronuncia¬ 
re tutto quello che volete. L.30.000. 


APPLICANDO 21 

AP21/N46 Architetto. Un programma 
per studiare sul video la disposizione di 
mobili, porte, finestre e muri, spostan¬ 
doli a piacere, modificandone le dimen¬ 
sioni, duplicandoli, facendoli ruotare.. 
E poi, naturalmente, stampando il tut¬ 
to. Autocorsa. A tutta birra lungo una 
pista con vere e proprie voragini e mas¬ 
si da schivare. A ogni videata cambia 
la difficoltà del percorso, e la sosta ai 
box riserva qualche interessante sor¬ 
presa. By-pass per il dump. Una 
scorciatoia per accedere alla routine di 
stampa, e solo a quella, senza bisogno 
di attraversare prima tutto il program¬ 
ma: basta by-passarlo! Cursore. Per 
lo spostamento del cursore Apple// u- 
sa gli ingombranti comandi HTAB e 
VTAB; è invece possibile utilizzare spe¬ 
ciali caratteri di controllo nelle stringhe 
stampate, grazie a questo programma 
in codice macchina. Grafica. Un altro 
passo avanti verso la perfetta padro¬ 
nanza della grafica in altissima risolu¬ 
zione: come animare sullo schermo le fi¬ 
gure a blocchi e come dare l'impressio¬ 
ne che scorrano dietro un altro ogget¬ 
to. Curve di titolazione. Interessa 
gli studenti (e gli insegnanti) di chimica 
questo programma del Progetto Sera¬ 
phim: inserite le debite variabili, e asse¬ 
gnato il nome all'acido che si sta stu¬ 
diando, traccia sul piano cartesiano la 
relativa curva di titolazione. Lire 
30.000. 


APPLICANDO 22 

AP22/N47 Impegni. Polizze che sca¬ 
dono, appuntamenti, anniversari e com¬ 
pleanni. Per avere sempre sotto gli oc¬ 
chi un promemoria elettronico, ecco un 
calendario intelligente. Azzardo. Il 
computer diventa mazziere di Blackja- 
ck, in una simulazione che ricalca fedel¬ 
mente il funzionamento delle slot machi¬ 
ne di Las Vegas. Effetti speciali. 
L'importanza di una gradevole presen¬ 
tazione non va sottovalutata, quando 
si realizza un programma. Consente lo 
scorrimento orizzontale di una stringa, 
alla velocità voluta, per vivacizzare un 
menù, un titolo, oppure... Calenda¬ 
rio. Ecco un calendario perpetuo, per¬ 
fetto, veloce e sempre pronto. Grafi¬ 
ca. Creare intere immagini e figure a 
blocco sullo schermo Hi-Res, e poi ani¬ 
marle. Chimica. Il famoso numero di 
Avogadro e il concetto quantitativo di 
mole: la visualizzazione aiuta a spiegar¬ 
li e ad apprenderli meglio. Lire 30.000. 


95 





(o]0§Gxserviee 


APPLICANDO 23 

AP23/N48 Obelisk. Un game spazia¬ 
le, alla caccia di obelischi da distrugge¬ 
re, con singoli colpi o con una mega¬ 
esplosione. Programmare l'Apple- 
mouse. Come programmare suH’Àpple 
in modo da utilizzare il mouse? In Apple¬ 
soft o in Assembler, ecco un aiuto pre¬ 
zioso per la programmazione e l'utilizzo 
dell'Applemouse. Più che diapositi¬ 
ve. Per realizzare presentazioni con il 
computer che siano qualcosa di più di 
un continuo scorrere di diapositive: l'ef¬ 
fetto "solid state”! Grafica. Program¬ 
ma dedicato alla doppia alta risoluzio¬ 
ne: scorrimento orizzontale di scritte e 
figure. Lire 30.000. 

AP23/A49 Trasferimento da Apple 
a Mac. Un programma eccezionale e 
nuovissimo: trasferire testi dall'Apple 
Ile e Ile al Macintosh è ora possibile e, 
quel che più conta, semplice e ultrasi¬ 
curo. La confezione comprende un 
dischetto da 3 pollici e mezzo e uno da 
5 pollici e un quarto. Lire 50.000. 

AP23/N50 Grafici 3D. Un programma 
che consente la realizzazione di grafici 
a tre dimensioni senza linee nascoste. 
Quale elemento? Un trivia di chimi¬ 
ca, per ripassare giocando i nomi e le 
caratteristiche di tutti gli elementi della 
tavola chimica. Le domande le fa lo stu¬ 
dente, e dalle risposte del computer de¬ 
ve ricavare la soluzione finale. Lire 
20 . 000 . 


APPLICANDO 24 

AP24/N51 Executive Card File. 

Uno schedario eccezionale per Apple 
//. E' strutturato in modo che le schede 
possano essere riposte in dieci racco¬ 
glitori: un' infinità di dati con la 
massima velocità di reperimento. 
Apple Maestro. Tutti compositori, 
con questo programma che insegna a 
creare musica in modo professionale, 
ma non per questo inaccessibile ai 
profani. Lire 35.000. 

AP24/N52 Dump 80 colonne. Un 
programma per ottenere la stampa 
della pagina schermo a ottanta 
colonne: proprio quello che finora non 
avreste potuto chiedere al vostro 
Apple. Date and time. Senza più 
dover ricorrere a costose schede 
aggiuntive, potete inserire nel vostro 
computer un calendario e, soprattutto, 
un orologio. Grafica. Con l'aggiunta 
delle routine per lo scorrimento 
verticale il mondo della grafica in 
doppia alta risoluzione non ha più 
difficoltà né segreti. Lire 30.000. 

AP24/N53 Prospettiva 3D. Questo 
programma è il seguito naturale di 
quello contenuto nel disco AP23/N50: 
come disegnare intere prospettive 
urbane, senza che il computer mostri i 
lati e le facce che devono rimanere 
nascosti. Test scolastici. Come 
crearsi un trivia "aperto", cioè non 
confinato a una sola materia e aperto a 


ogni intervento. Un modo nuovo e intel¬ 
ligente per ripassare (o giocare) inter¬ 
rogandosi. Lire 20.000. 

AP24/A55 Utility Dos 3.3. Questo 
dischetto consente a tutti coloro che 
hanno acquistato un Apple// dopo il 
maggio 1984 di avere a disposizione il 
sistema operativo Dos 3.3 indispen¬ 
sabile per ricopiare alcuni programmi 
presentati da Applicando. Insieme al 
sistema operativo vengono fornite 
quattro interessanti utility per la 
gestione dei file Dos. Il dischetto 
contiene tutte le informazioni 
necessarie. Lire 25.000. 


APPLICANDO 25 

AP25/N56 Chart Manager. Un pro¬ 
gramma professionale per la gestione 
dei dati, aziendali o familiari: ordina, cal¬ 
cola, modifica e poi traccia il grafico 
prescelto, a curve, a barre o a torta. In 
ogni sua fase consente il dump grafico 
dello schermo. Grafica. Quale logica 
è preposta all'alta risoluzione nell'Ap¬ 
ple? Queste routine in linguaggio mac¬ 
china consentono un buon approccio al 
problema attraverso la gestione delle fi¬ 
gure a blocchi. Lire 35.000. 

AP25/N57 Apple Checker. Un vero 
amico per chi copia da sé i programmi: 
controlla se sono stati commessi errori 
di battitura. Buffer di stampa. Spoo- 
ler è un programma che utilizza la sche¬ 
da language card nell'Apple 64 per "par¬ 
cheggiare" i dati; così mentre stampate 
potete continuare a lavorare sullo 
schermo del computer. Cinetica. Un 
interessante esperimento di laborato¬ 
rio: analizzate la variazione di velocità 
in funzione delle concentrazioni dei 
reattivi e della temperatura. L. 35.000. 


Utility DOS 3.3 
AP24/A55 

Il sistema operativo ormai non 
più fornito dalla Apple, 
indispensabile per copiare alcuni 
programmi di Applicando. 
Nello stesso dischetto sono 
comprese 4 utility 
per la gestione dei file DOS. 


APPLICANDO 26 

AP26/N59 Ants. Un gioco ai confini del¬ 
la realtà, terrificante e divertente: gi¬ 
gantesche, spuntano dal vostro giardi¬ 
no delle omicide formiche mutanti. File 
name mover. All'inizio l'Hello sta 
scritto al primo posto nel Catalog, ma 
poi si sposta... Per fare un po' di ordine 
nei nomi dei file questa utility è indi¬ 
spensabile. Sistemi di equazioni li¬ 
neari. Molti sono quasi impossibili da 


risolvere senza computer, per la loro in¬ 
terminabile complessità. Questo pro¬ 
gramma può affrontare fino a 70 equa¬ 
zioni, con fino a 70 variabili. E 
naturalmente stamparle. Lire 35.000. 
AP26/A60 Irpef (occorre VisiCalc). Il 
tempo delle tasse, oltre ai noti dolori, 
comporta perdite di tempo e disguidi: 
per compilare più in fretta la dichiarazio¬ 
ne, e tenersi aggiornati con le aliquote 
in corso, questo modello sfrutta la po¬ 
tenza del foglio elettronico. Lire 
25.000. 

AP26/A61 Irpef (occorre Apple- 
Works). Lo stesso del precedente, ma 
in versione AppleWorks. Lire 25.000. 

— 
Il dominio di 
Mean dr o-AP26/A65 

Un adventure game tutto italiano 
migliore perfino, dei più 
famosi adventure d'importazione. 
Alla ricerca del grande segreto, 
nascosto oltre lo specchio 
e dentro la fantasia. 


AP26/N64 Certificatore di dischet¬ 
ti. Aprire una seconda tacca nel di¬ 
schetto per sfruttare anche la memoria 
della faccia posteriore? Con questo pro¬ 
gramma lo si può fare senza timori: con¬ 
trolla tutte le tracce e segna come già u- 
tilizzati i settori eventualmente difetto¬ 
si. Grafica. L'animazione di figure a 
blocchi si può gestire in più modi; ecco 
alcune routine chiave, interdipendenti. 
Lire 25.000. 

AP26/A65 II dominio di Meandro. 

Finalmente un adventure tutto italiano, 
che però non ha nulla da invidiare ai 
professionali d'importazione. Alla ricer¬ 
ca del Grande Segreto, nascosto oltre 
lo specchio e dentro la fantasia. Lire 
35.000. 


APPLICANDO 27 

AP27/N66 Chitarra. Un maestro ti in¬ 
segna gli accordi, mostrando sul video 
in bassa risoluzione chiarissime istru¬ 
zioni grafiche per la diteggiatura; una 
speciale routine, poi, controlla gli errori 
commessi. Crono. Relegato nel Tarta¬ 
ro all'inizio dei tempi da Zeus, Crono ne 
emerge oggi e sferra un attacco morta¬ 
le per il potere universale... Armati del 
fulmine divino, dovete sconfiggerlo. Li¬ 
re 35.000. 

AP27/N67 Reminder. Per tenere sot¬ 
to controllo la gestione domestica, ec¬ 
co un programma multiforme: è un ge¬ 
store prestiti, un custode delle scorte 
freeezer, un programmatore per l'orto, 
un’agenda delle incombenze e dei lavo¬ 
ri... Grafica. Tutte le immagini grafi¬ 
che, provenienti da qualsiasi program¬ 
ma, possono divenire tavole di figure a 
blocco. Con questo programma, poi, 


96 













non occorre nemmeno conoscerne le 
coordinate. Postmaster. Può estire 
cento indirizzi, ordinarli in ordine alfabe¬ 
tico e modificarli quando serve, ma so¬ 
prattutto è un formidabile stampaeti- 
chette, per ogni stampante. Apple- 
trig. Seno e coseno, tangente e cotan¬ 
gente, secante e cosecante: tutte le 
funzioni trigonometriche a portata di 
mano. Lire 35.000. 


APPLICANDO 28 

AP28/N74 Supershopper. Un pro¬ 
gramma versatile e intelligente che pia¬ 
nifica gli acquisti per una gestione otti¬ 
male, senza sprechi né amare sorpre¬ 
se, del frigorifero e delle scorte free¬ 
zer. Planetario. La volta celeste sul¬ 
lo schermo, con i movimenti e le magni¬ 
tudini delle stelle, in una perfetta simu¬ 
lazione: basta impostare l'ora e le coor¬ 
dinate del luogo da cui si vuole osserva¬ 
re la notte. Lire 35.000. 

AP28/N75 Millenote. Una routine per 
la creazione di musica, completa di 
staccato, corone, ritardi e pause, per 
personalizzare giochi e programmi con 
simpatici effetti sonori. Scatola ne¬ 
ra. Un classico gioco di deduzione nel¬ 
l'era atomica: dal grado di riflessione 
del raggio lanciato dentro la scatola bi¬ 
sogna indovinare le posizioni degli ato¬ 
mi contenuti. Text file. Ottima routine 
per la gestione dei listati come file di te¬ 
sto; rende più veloci e agevoli le corre¬ 
zioni. Grafica. L'animazione delle figu¬ 
re a blocco con effetti speciali. Lire 
35.000. 

AP28/A76 Gin. E' il gioco del momen¬ 
to, e ha un solo difetto: calcolare il pun¬ 
teggio è laboriosissimo. Nessun proble¬ 
ma, però, se si usa questo programma 
contapunti. Lire 20.000. 


PROGRAMMI PER 
MACINTOSH 


AP23/A49 Trasferimento da Apple 
a Mac. Un programma eccezionale e 
nuovissimo: trasferire testi dall'Apple 
//e e Ho al Macintosh è ora possibile e, 
quel che più conta, semplice e ultrasi¬ 
curo. La confezione comprende un 
dischetto da 3 pollici e mezzo e uno da 
5 pollici e un quarto. Lire 50.000. 

AP24/N54 MacGraph. Un programma 
favoloso per un uso professionale del 
Macintosh: può creare ogni tipo di gra¬ 
fico, a linee, a barre o a torta, che poi si 
può copiare e incollare in aualunque 
altro documento (relazioni, documenti 
da proiettare...). Lire 40.000. 

AP25/N58 File Cabinet. Potenza e 
versatilità caratterizzano il database 
per Macintosh: strutturato come uno 
schedario, permette un'archiviazione e 
una gestione dati molto agile e intelli¬ 
gente. I criteri di classificazione, multi- 


per i nostri 
lettori 



Abbonamento 
DISK SERVICE 




Applicando è lieto di offrire ai propri lettori la 
possibilità di sottoscrivere un abbonamento 
a 5 o 10 dischetti, a scelta fra quelli presentati nel 
Disk Service, a un prezzo super vantaggioso: 


120.000 lire per 5 dischetti Apple II 
200.000 lire per 10 dischetti Apple II 
175.000 lire per 5 dischetti Macintosh 
300.000 lire per 10 dischetti Macintosh 

Pagherete, rispettivamente, 24.000, 20.000, 35.000 
o 30.000 lire a dischetto, Iva e spese di spedizione 
comprese 

qualunque sia il prezzo di vendita 
del singolo dischetto. 

Basta che compiliate il tagliando qui sotto e lo 
inviate ad Applicando, abbonamenti Disk Service, 
Corso Monforte 39, 20122 Milano, unitamente a un 
assegno non trasferibile intestato a Editronica srl 
e al vostro primo ordine. 

Per ordinare i dischetti, adesso e in seguito 
utilizzate il buono d'ordine pubblicato alle pagine 
seguenti, specificando sempre che siete un 
abbonato del Disk Service. L'abbonamento non ha 
scadenza, quindi i 5 o 10 dischetti potete ordinarli 
quando più vi aggrada. 



Sì, desidero sottoscrivere il seguente 
abbonamento al Disk Service: 

□ 5 dischetti con programmi Apple II, per 120.000 lire 
CU 10 dischetti con programmi Apple II, per 200.000 lire 

□ 5 dischetti con programmi Macintosh, per 175.000 lire 
di 10 dischetti con programmi Macintosh, per 300.000 lire 

Nome_ 

Cognome_ 

Indirizzo- 

Cap_ Città-PV_ 


Data 


Firma 





























(slgCsservice 


segue: Programmi per Macintosh 


pii, consentono la massima personaliz¬ 
zazione. Lire 40.000. 

AP26/A62 Bioritmi. Un programma 
brioso, ma professionale neH'imposta- 
zione e nella grafica. Allietato dal dise¬ 
gno dei simboli zodiacali, traccia te tre 
famose curve fisico-emotivo-intelletti- 
ve mese per mese, fa i confronti e dà il 
consiglio del giorno. Lire 40.000. 

AP26/A63 Irpef (occorre Multiplan). Il 
tempo delle tasse, oltre ai noti dolori, 
comporta perdite di tempo e disguidi: 
per compilare più in fretta la dichiarazio¬ 
ne, e tenersi aggiornati con le aliquote 
in corso, questo modello sfrutta la po¬ 
tenza del foglio elettronico. Lire 
25.000. 

AP27/A68 Leasing (occorre Multi¬ 
plan). Conti alla mano, qual è il tasso 
reale che vi tocca pagare? La conve¬ 
nienza di ogni contratto di leasing con¬ 
teggiata su misura grazie a una applica¬ 
zione di matematica finanziaria sofisti¬ 
cata, ma semplice da usare. Lire 
30.000. 

AP27/N69 MacBanker. Un program¬ 
ma realmente all'avanguardia, che con¬ 
sente la stampa degli assegni su modu¬ 
lo continuo. Ma non solo: tutta la ge¬ 
stione del vostro conto in banca, con 
verifica puntuale degli estratti conto 
che vi vengono inviati, con registrazio¬ 
ne accurata di ogni vostro versamento 
e di ogni assegno che emettete, è affi¬ 
data a MacBanker. Lire 40.000. 

AP28/N77. Cronometro. Un prezioso 
accessorio da aggiungere alla scriva¬ 
nia del Macintosh: tiene conto dei ses¬ 
santesimi di secondo e stampa i nomi 
dei parziali. Radion Tyrant. Un avvin¬ 
cente gioco di strategia nella reggia del 
tiranno, alla ricerca delle sue guardie. 
Con griglia di gioco e griglia di controllo. 
Lire 40.000. 

AP28/A78 Gin. E' il gioco del momen¬ 
to, e ha un solo difetto: calcolare il pun¬ 
teggio è laboriosissimo. Nessun proble¬ 
ma, però, se si usa questo programma 
contapunti. Lire 25.000. 


Applicazioni Omnis3 pronte per l'uso 

Applicando mette a disposizione dei lettori una serie di applicazioni già 
pronte, preparate con OMNIS3, che toccano i più svariati campi. Saranno 
tutte offerte a basso prezzo, e funzioneranno con il RUNTIME di Omnis3, 
che acquistato una volta può essere poi usato anche con più di una appli¬ 
cazione. Ovviamente chi possiede il programma Omnis3 potrà fare a me¬ 
no di acquistare il RUNTIME, che può essere richiesto ai migliori compu¬ 
ter shop o direttamente a Editronica insieme alle applicazioni, utilizzan¬ 
do il tagliando del Disk Service. 

Queste applicazioni e il RUNTIME non possono essere or¬ 
dinati usufruendo dell'abbonamento al Disk Service. 

FATTURAZIONE E MAGAZZINO - AP27/A70 

Questa applicazione è stata approntata per chi ha l'esigenza di dover 
stampare molte fatture e magari ripetitivamente, andando a pescare i dati 
da un magazzino per quanto riguarda gli oggetti o le prestazioni vendute, 
e da un archivio clienti per ottenere in automatico i dati anagrafici di que- 
st'ultimi. La procedura permette la personalizzazione della stampa delle 
fatture. Funziona sia su Macintosh 512K sia con Macintosh Plus, con 
doppio drive e stampante ImageWriter. Lire 272.500 Iva 9% e 
spese di spedizione comprese. 

PREVENTIVAZIONE - AP27/A71 

Questa applicazione è stata studiata per chi ha l'esigenza di una gestio¬ 
ne del magazzino molto ampia e complessa. Infatti si possono gestire 
procedure come il carico e lo scarico automatico dal magazzino, il con¬ 
trollo delle merci a stock, l'inventario di magazzino con la relativa movi¬ 
mentazione, le chiusure periodiche e annuali di tali movimenti, la gestio¬ 
ne dell'elenco Clienti e Fornitori, e la gestione di preventivi e di com¬ 
messe di vendita o acquisto. E' una procedura molto complessa ma nello 
stesso tempo estremamente facile da usare grazie anche a una serie di indi¬ 
cazioni a video che permettono un uso guidato dell'applicazione; sicura¬ 
mente si rivela un valido strumento nella gestione di un magazzino anche 
molto complesso, estremamente valido e professionale. Può funzionare 
sia con il Macintosh da 512K che con il Plus, con ImageWriter, ma si 
consiglia l'uso di un Hard-Disk o di drive da 800K per la registrazione dei 
dati. Lire 272.500 Iva 9% e spese di spedizione comprese. 

GESTIONE APPUNTAMENTI - AP27/A72 

Per automatizzare e gestire in maniera efficace gli impegni lavorativi 
nell'arco della giornata. Gli appuntamenti vengono suddivisi per Clienti, 
Fornitori, Meeting interni all'ufficio e impegni personali. E' possibile ef¬ 
fettuare ricerche di appuntamenti nell'arco di un giorno, di una settimana, 
di un mese. E' un ottimo complemento alle due procedure precedentemente 
descritte. Funziona con Mac 512K o Plus con doppio drive e ImageWriter 
. Lire 163.500 Iva 9% e spese di spedizione comprese. 

RUNTIME OMNIS3 - AP27/A73 

Serve a utilizzare, tutte le applicazioni create con Omnis3. Lire 
381.500 Iva 9 % e spese di spedizioni comprese 



Compilare e spedire il tagliando qui sotto a Applicando , Editronica srl, Corso Monforte 39, 20122 Milano 


1 


Vogliate inviarmi i seguenti dischetti: 


N 

klP 


1 

1/ 

1 


N. 

IaIp 


1 

1/ 

1 


N. 

Ia|p 


1 

M 

1 


N. | 

A | P| 

1 

1 

/I 


11 

N. | 

A | P| 


1 

/I 


1 1 

N. | 

A | P| 


1 

/I 


1 1 

N. | 

IaIpi 

1 

u 

l/l 

1 1 

lm 


Sono abbonato al Disk Service: sì □ noD 


Cognome.Nome. 

Via.CAP. 

Città.Prov. 

Scelgo la seguente formula di pagamento: 

UH allego assegno di L. non trasferibile intestato a Editronica Srl. 

CU allego ricevuta di versamento di L.sul cc/p n. 19740208 

intestato a Editronica sii, C.so Monforte 39, 20122 Milano. 

EH pago fin d'ora l’importo di L. con la mia carta di credito 

Bankamericard N.scadenza. 

autorizzando la Banca d’America e d'Italia ad addebitarne l’importo sul mio conto. 

Data.Firma. 

I I Desidero fattura. Il mio codice fiscale/paitita Iva è:. 



I 

































m 4n n :mm t so rm sas di tossi ; : ■ 

• Delle Piene 39-38 

fm 29:08 «in "n«o 23 m 

■m niCTin - fittrum 9K81239453 

nnrr» 92 8565422 liirarTign m «kuii a t jrnhi 
T^T»^-nn «pali :minrs - IW "C * <T 
.^.1^71’mi^n aaows rtmtìrd ariaontili i mrtiali 
v .'l..'7yi »::»» * interlw 'hwst 


□ Tre programmi integrati in un unico pace 

□ Tre strumenti all’unisono 


□ Tre volte meno caro, a parità di potenza 

□ Tre indiscutibili motivi per acquistarlo 


editine di Hinm Un* giti liMrltd « ridHllt • «fluiti I 

umuu 4 miw tene ni unni U tew mele i 


ARCHIVIO 

Schedario evoluto e veloce, per¬ 
sonalizzabile. Ricerche multichia- 
ve, sort, aggiornamenti numerici 
automatici, calcolatrice, stampe 
personalizzabili etc. 


GRAFICI 

Tre tipi di grafici: barre, linee, torta 
con personalizzazione di diciture, 
valori e scale 2 o 3 dimensioni. 
Stampe e comparazioni. 


TESTI 

Potentissimo editore di testi con 
righelli, taglia, copia, incolla, giusti¬ 
ficazioni e word-wrap. Passaggio 
dei testi all’archivio per un autenti¬ 
co mail-merge. 


c 


L. 


246.800 



Completamente in italiano - by HL software - Horizontal Line Software 

distribuito da EMS - via Dalmazia,2 - 27029 Vigevano Telefono (0381) 80666 
























Parola di Macintosh 


Microsoft.Word 






&\V& 


Sf f * 


** 


Chiunque abbia dimestichezza con il Macintosh sa perfettamente che Microsoft Word è di gran lunga il miglior 
programma di elaborazione testi disponibile. 

Non è necessario, per apprezzare la potenza di W ord, essere un romanziere alle prese con una storia di 400 pagine: è 
sufficiente non voler investire il proprio tempo su programmi meno efficienti e, oltretutto, più complicati da usare. 
Basta lavorare su più documenti contemporaneamente, componendo ad esempio una relazione con parti di altre già 
scritte in precedenza, oppure inviare una lettera circolare, combinando il testo con la lista degli indirizzi, o gestire, con 
una gamma impareggiabile di possibilità, una stampante laser. 

Per non parlare della possibilità di crearsi un Glossario, cioè un archiv io di parole o frasi di uso ripetitivo, da richiamare 
con un solo tasto. 

Queste caratteristiche, e molte altre ancora, come la sua sorprendente semplicità di uso, fanno di W ord la scelta per 
eccellenza per chi sappia di volere il meglio, e non esiti di fronte ad esso. 

Microsoft Word è disponibile presso tutti gli Apple Centers ed i Distributori Autorizzati Microsoft. 


MICROSOFT 

Potenza e semplicità. Insieme 

MICROSOFT S.p.A. - 20093 Cotogno M? (MI) - A ia Michelangelo, 1 
tei. (02) 2549741 r.a. - fax (02) 2549745